Day 5 — FastAPI에서 Path, Query, Body 파라미터 통합 가이드
카테고리
프로그래밍/소프트웨어 개발
서브카테고리
웹 개발
대상자
- 대상자: FastAPI 초보자 및 중급 빈드 개발자
- 난이도: 중급 (Python 및 FastAPI 기초 지식 필요)
핵심 요약
- Path, Query, Body 파라미터 통합: 사용자 ID(
Path
), 알림 여부(Query
), 프로필 데이터(Body
)를 결합한 API 구현 - Pydantic 모델 사용:
UserUpdateRequest
,UserResponse
클래스로 입력/출력 데이터 검증 및 구조화 - Swagger UI 자동 생성: FastAPI의 내장 문서 기능으로
PUT /user/{user_id}
엔드포인트 테스트 가능
섹션별 세부 요약
1. 기본 설정 및 모델 정의
UserUpdateRequest
클래스를 통해name
,email
,age
필드 정의UserResponse
클래스로id
,name
,notify
필드 반환 구조 설정BaseModel
과Optional
타입 사용으로 데이터 검증 강화
2. 엔드포인트 구현
@app.put("/user/{user_id}"
) 데코레이터로 PUT 메서드 정의Path
,Query
,Body
파라미터를 각각user_id
,notify
,user
변수에 매핑response_model=UserResponse
로 반환 데이터 필터링
3. 테스트 방법
uvicorn test:app --host 0.0.0.0 --port 9002
명령어로 서버 실행- Swagger UI(
http://localhost:9002/docs
)에서PUT /user/{user_id}
엔드포인트 테스트 user_id=123
,notify=true
, JSON Body 입력 후 실행 시 응답 확인
4. 검증 규칙 추가
Path(..., gt=0)
로user_id
가 양수인지 검증Query(False, description="...")
로 파라미터 설명 추가- Swagger UI에서 자동 생성된 문서의 정확성 향상
5. 실제 적용 시 고려사항
- Path: 라우팅(예: 사용자 ID)에 필수
- Query: 선택적 동작 제어(예:
notify=true
) - Body: 리소스 생성/수정 시 데이터 전송(예: 프로필 정보)
- FastAPI의 자동 생성된 문서와 검증 기능을 활용한 개발 효율성 강조
결론
- 핵심 팁: Pydantic 모델로 입력/출력 검증,
Path
,Query
,Body
파라미터를 통합하여 실무 API 구현 - Swagger UI 활용:
http://localhost:9002/docs
에서 엔드포인트 테스트 및 문서 확인 - Validation 강화:
gt=0
,description
등으로 파라미터 검증 및 문서 설명 명확화 - FastAPI의 자동 생성된 API 문서와 검증 기능을 통해 개발 생산성 극대화