[부스트캠프 AI-Tech] 19주차 Day 3
✏️학습 정리
3-1. FastAPI(2)
-
FastAPI 기본지식
- Path Parameter
- /users/402
- 서버에 402라는 값을 전달하고 변수로 사용
- 경로에 존재하는 내용이 없으면 404 Error 발생
- Resource를 식별해야 하는 경우 사용
- Query Parameter
- /users?id=402
- ID가 402인 사용자 정보를 가져오고 싶은 경우
- query string 사용 (key, value 쌍으로 이루어지며 &로 연결해 여러 데이터 넘김)
- 데이터가 없는 경우 빈 리스트가 나옴 —> 추가로 Error Handling이 필요
- 정렬, 필터링을 해야 하는 경우 사용
- Request Body
- 클라이언트에서 API에 데이터를 보낼 때, Request Body 사용
- 클라이언트 → API: Request Body
- Request Body에 데이터를 보내고 싶다면 POST Method 사용
- Response Body
- API의 Response → 클라이언트: Response Body
- Decorator의 response_model 인자로 주입 가능
- Form
- Form 형태로 데이터를 받고 싶은 경우
- python-multipart 라이브러리 필요
- Form 클래스를 사용하면 Request의 Form Data에서 값을 가져옴
- File
- File 업로드하고 싶은 경우
- python-multipart 라이브러리 필요
-
Pydantic
- Data Validation / Settings Management 라이브러리
- Type Hint를 런타임에서 강제해 안전하게 데이터 핸들링
- 기존 Validation 라이브러리보다 빠름
- 머신러닝 Feature Data Validation으로 활용 가능
- Validation
- Python Class 활용시
- 의미 없는 코드가 많아짐
- 복잡한 검증 로직엔 Class Method가 복잡해지기 쉬움
- Dataclass 활용시
- 인스턴스 생성 시점에서 Validation을 수행하기 쉬움
- 여전히 Validation 로직들을 직접 작성
- Pydantic 활용시
- Python Class, Dataclass 보다 훨씬 간결한 코드
- 주로 쓰이는 타입들에 대한 Validation이 만들어져 있음
- Custom Type에 대한 Validation도 쉽게 사용 가능