[python] FastAPI에서 모델 검증 및 검증 오류 처리하기

FastAPI는 파이썬을 위한 현대적이고 빠른 웹 프레임워크입니다. FastAPI를 사용하면 간편하게 모델 검증을 수행하고 검증 오류를 처리할 수 있습니다. 이번 블로그 포스트에서는 FastAPI에서 모델 검증을 어떻게 수행하고, 검증 오류를 어떻게 처리하는지 알아보겠습니다.

1. 모델 검증

FastAPI에서 모델 검증은 pydantic 라이브러리를 사용하여 수행됩니다. pydantic을 사용하면 간단하게 데이터 모델을 정의하고, 모델의 유효성을 검사할 수 있습니다.

from pydantic import BaseModel

class User(BaseModel):
    username: str
    password: str

위의 예제에서는 User 모델을 정의하였습니다. username과 password는 각각 문자열 타입입니다. 이제 이 모델을 FastAPI 엔드포인트에서 사용해보겠습니다.

from fastapi import FastAPI
from .models import User

app = FastAPI()

@app.post("/users/")
async def create_user(user: User):
    # 모델 검증 후 로직 수행
    return {"message": "User created successfully"}

위의 예제에서는 “/users/” 엔드포인트에서 User 모델을 받아와서 검증을 수행한 후, 로직을 수행하고 결과를 반환합니다.

2. 검증 오류 처리

FastAPI는 자동으로 모델 검증을 수행하고, 검증 오류가 발생한 경우 에러를 반환합니다. 이 에러를 적절하게 처리하기 위해서는 예외 처리를 사용하면 됩니다.

from fastapi import FastAPI, HTTPException
from .models import User

app = FastAPI()

@app.exception_handler(HTTPException)
async def http_exception_handler(request, exc):
    return JSONResponse({"error": str(exc.detail)}, status_code=exc.status_code)

@app.post("/users/")
async def create_user(user: User):
    # 모델 검증 후 로직 수행
    return {"message": "User created successfully"}

위의 예제에서는 HTTPException을 처리하는 예외 핸들러를 추가하였습니다. 이 핸들러에서는 에러 메시지를 반환하고 해당 상태 코드로 응답을 보냅니다.

이렇게 하면 FastAPI에서 모델 검증 및 검증 오류 처리를 손쉽게 수행할 수 있습니다.

결론

FastAPI를 사용하여 모델 검증을 수행하고 검증 오류를 처리하는 방법을 살펴보았습니다. FastAPI의 pydantic 라이브러리를 활용하면 더욱 편리하게 모델 검증을 수행할 수 있습니다. 검증 오류 처리를 통해 안정적인 웹 서비스를 개발할 수 있습니다.

자세한 내용은 FastAPI 공식 문서를 참고하시기 바랍니다.