FastAPI/FastAPI 알아보기

POST API - 생성

hyunai 2026. 5. 10. 12:47
# 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