기술블로그-Fastapi편
📦 FastAPI에서 Request Body + Pydantic 사용법
Chansman
2025. 5. 26. 18:08
📦 FastAPI에서 Request Body + Pydantic 사용법
✅ Pydantic이란?
Pydantic은 FastAPI에서 JSON 요청 데이터를 받을 때 사용하는 데이터 모델링 + 검증 도구이다.
- BaseModel을 상속받아 입력 데이터 구조 정의
- 요청 데이터의 타입 검증, 기본값 처리, 에러 반환을 자동으로 해줌
🛠️ 사용 예시: POST 요청으로 JSON 데이터 받기
from fastapi import FastAPI
from pydantic import BaseModel
app = FastAPI()
# 1. 요청 데이터 모델 정의
class Item(BaseModel):
name: str
price: float
is_offer: bool = False # 선택값 (기본값 지정)
# 2. POST 라우터 구현
@app.post("/items")
def create_item_handler(item: Item):
return {
"message": "Item received",
"data": item.dict()
}
🧪 요청 예시
POST /items
Content-Type: application/json
{
"name": "Laptop",
"price": 1299.99,
"is_offer": true
}
📨 응답 결과:
{
"message": "Item received",
"data": {
"name": "Laptop",
"price": 1299.99,
"is_offer": true
}
}
⚠️ 잘못된 요청 시 에러 응답
요청:
{
"name": "TV",
"price": "cheap"
}
📛 자동 에러 응답:
{
"detail": [
{
"loc": ["body", "price"],
"msg": "value is not a valid float",
"type": "type_error.float"
}
]
}
✅ 정리 요약
기능 설명
📥 Request Body | 클라이언트가 보내는 JSON 데이터를 받음 |
🔐 타입 검증 | Pydantic이 자동으로 자료형 검사 수행 |
🧱 데이터 구조화 | class Item(BaseModel) 로 구조 정의 |
📃 문서 자동화 | Swagger 문서 /docs에 자동 반영 |
💥 에러 자동 응답 | 타입 불일치 시 422 에러 발생 |
✅ 한 줄 요약
FastAPI에서는 POST 요청 JSON 데이터 처리 시, Pydantic으로 안전하게 구조 + 타입 검사를 자동화하자!