[python] FastAPI에서 사용자 정의 응답 모델 구현

FastAPI는 Python으로 빠르게 API를 작성할 수 있도록 도와주는 웹 프레임워크입니다. 기존에 정의된 데이터 모델 외에도 사용자 정의 응답 모델을 구현해야 하는 경우가 있습니다. 이번 블로그에서는 FastAPI에서 사용자 정의 응답 모델을 어떻게 구현하는지 알아보겠습니다.

1. 응답 모델 작성

먼저 사용자 정의 응답 모델을 작성해야 합니다. 일반적으로 Pydantic 모델을 사용하여 데이터 모델을 정의합니다.

from pydantic import BaseModel

class CustomResponse(BaseModel):
    message: str
    data: dict

위의 코드에서 CustomResponse는 사용자가 원하는 형태의 응답을 정의합니다. 위 예시에서는 messagedata 필드를 포함하는 사용자 정의 응답 모델을 정의했습니다.

2. FastAPI 핸들러에서 사용

정의한 사용자 정의 응답 모델을 실제 FastAPI 핸들러에서 사용할 수 있습니다.

from fastapi import FastAPI
from .models import CustomResponse

app = FastAPI()

@app.get("/custom_response", response_model=CustomResponse)
async def get_custom_response():
    return {"message": "Success", "data": {"key": "value"}}

위의 코드에서 @app.get의 데코레이터를 통해 핸들러를 정의하고, response_model 매개변수를 사용하여 사용자 정의 응답 모델을 지정합니다.

위 과정을 통해 FastAPI에서 사용자 정의 응답 모델을 구현할 수 있습니다. 이를 통해 API의 유연성을 높일 수 있으며, 클라이언트와의 상호작용을 개선할 수 있습니다.

참고 문헌: