본문 바로가기

FastAPI 채팅 개발 일지

21.04.20 - 채팅방 생성 및 조회 기능, Class Based View

728x90

유저를 만들 수 있게 되었으니 이제 채팅방 crud를 만들어볼 차례.

CBV

인턴에서 FastAPI 사용했을때는 함수형으로 작성했었다. 그러다보니 main.py 파일이 너무 길어지고 수정이 필요할 때 찾기도 불편했다.

그래서 Flask에서처럼 클래스로 뷰를 관리하는 게 있었으면 좋겠다고 생각했는데, 역시 있었다.

Class Based Views

생각보다 너무 좋았다. 매번 함수에서 공통적으로 필요한 부분(db, request, user_id)을 선언하지 않아도 클래스 변수로 가져올 수 있다니 신세계다.

한가지 좀 애를 먹었던 것은 user_id를 가져오는 부분이었는데, 나는 해당 함수의 파라미터 이름을 맘대로 지어도 되는줄 알았는데 안되는 것이었다... token: str = Header(...) 이렇게 했었는데, 공식 문서에 나온대로 authorization: str = Header(...) 이대로 써야 했었다. 생각해보면 당연한 부분이었다... 헤더에서 어떻게 알고 인증 정보를 가져올 수 있는지... 좀만 생각해보고 했어야...

채팅방 생성 및 조회 기능

CBV인것 빼고는 그냥 crud api 짜는 것과 다를게 없었다. main.py를 좀 더 깔끔하게 유지하기 위해 apis라는 폴더에 api 파일 모듈로 만들고, import 하여 router 등록하는 방식으로 했다.

정말 main.py 가 깔끔해지니 마음이 편안해졌다.

728x90