Pydantic의 BaseModel
을 상속받아서 모델을 생성한 후에 해당 모델의 데이터들을 Query Parameter로 받는 예제이다. Depends()
를 사용하면 Paramter로 받을 수 있다.
from fastapi import FastAPI, Depends
from fastapi.responses import JSONResponse
from fastapi.encoders import jsonable_encoder
from pydantic import BaseModel
from datetime import datetime
class Filter(BaseModel):
start_date: datetime = None
end_date: datetime = None
page_index: int = 1
page_size: int = 100
app = FastAPI()
@app.get("/")
async def get_data(data_filter: Filter = Depends()):
return JSONResponse(status_code=200, content=jsonable_encoder(filter))
위 예제는 받은 데이터를 그대로 반환하는 것이 전부이지만 data_filter 변수로 데이터들에 접근할 수 있다.
OpenAPI에서 다음과 같이 정상적으로 나온 것을 확인할 수 있다.