# requestBody에 대한 처리를 FastAPI에서는 BaseModel을 import하여 처리한다.
from pydantic import BaseModel
todo_data = {
1: {
"id": 1,
"contents": "실전 FastAPI 섹션 0 수강",
"is_done": True,
},
2: {
"id": 2,
"contents": "실전 FastAPI 섹션 1 수강",
"is_done": False,
},
3: {
"id": 3,
"contents": "실전 FastAPI 섹션 2 수강",
"is_done": False,
}
}
# import 받은 BaseModel을 상속받는다.
# todo 아이템들이 갖는 형태와 동일한 스키마로 만든다.
class CreateToDoRequest(BaseModel):
id: int
contents: str
is_done: bool
@app.post("/todos")
# FastAPI가 알아서 requestBody를 CreateToDoRequest에 넣어서 처리를 해준다.
def create_todo_handler(request: CreateToDoRequest):
todo_data[request.id] = request.dict()
return todo_data[request.id]
- todo_data[request.id] = request.dict()
- 기존 todo 데이터 같은 경우에는 Value로 Dictionary를 가지게 된다.
- request 같은 경우는 Dictionary가 아닌 pydantic의 BaseModel을 상속 받는 새로운 클래스의 객체다.
- 따라서 그대로 전달해주면 안되고 dict() 메서드를 이용해주면 된다.
- dict() 메서드는 baseModel에 구현이 되어있다.
swagger
새로 생성된 POST 요청 API에 밑과 동일하게 생성을 해주면

밑과 동일하게 200 code가 나오면서 성공적으로 POST 통신에 성공한다.

'FastAPI > FastAPI 알아보기' 카테고리의 다른 글
| DELETE API - 삭제 (0) | 2026.05.10 |
|---|---|
| PATCH API - 수정 (0) | 2026.05.10 |
| GET API - 단일 조회 (0) | 2026.05.10 |
| GET API - 전체 조회 (0) | 2026.05.10 |
| FastAPI 간단한 HTTP 통신 (0) | 2026.05.10 |