1. 기초
1.1. 라이브러리 / 모듈
- pydantic : type annotaion을 활용하여 data validation과 setting 관리를 해주는 라이브러리
- SQLAlchemy : ORM을 사용할 수 있도록 도와주는 데이터베이스 관련 툴킷
- beanie : MongoDB를 위한 파이썬의 ODM.
- pytest : 파이썬 테스트 라이브러리. pytest 내 fixture는 선언한 함수를 테스트 함수에서 인자로 받아 사용할 수 있도록 한다.
- httpx : sync, async API들을 제공하고, HTTP1.1과 HTTP/2를 모두 제공하는 완전한 기능을 갖춘 파이썬 3를 위한 클라이언트
1.2 CRUD 데코레이터의 대표적 파라미터
- path (str): 엔드포인트의 경로를 지정
- response_model (Type[Union[Model, Type[Model], Tuple[Model, ...]]]): 반환할 모델을 정의
- status_code (int): 응답 상태 코드를 지정
- response_model_include (Union[SetIntStr, DictIntStrAny]): 응답 모델에 포함할 특정 필드를 지정
- response_model_exclude (Union[SetIntStr, DictIntStrAny]): 응답 모델에서 제외할 특정 필드를 지정
1.3. FastAPI 인증 방식
- 기본 HTTP 인증 : 사용자 인증 정보를 Authorization HTTP 헤더를 사용해 전송하는 방식. Basic 값을 포함하는 WWW-Authenticate 헤더와 인증 요청을 처리한 리소스를 나타내는
영역(realm) 매개변수가 반환된다.
- 쿠키 : 데이터를 클라이언트 측에 저장될 때 사용되는 방식.
- bearer 토큰 인증 : bearer 토큰이라는 보안 토큰을 사용해 인증하는 방식. 이 토큰은 Bearer 키워드와 함께 요청의 Authorization 헤더에 포함되어 전송된다. 가장 많이 사용되는 토큰은
JWT이며 사용자 ID와 토큰 만료 기간으로 구성된 딕셔너리 형식이 일반적이다.