docs에서 Json 스키마에 대해 추가적인 정보를 적어줄 수 도 있다.
JSON 스키마를 정의할 수 있는 방법은 여러가지가 있다.
schma_extra
class Item(BaseModel):
name: str
description: Optional[str] = None
price: float
tax: Optional[float] = None
class Config:
schema_extra = {
"example": {
"name": "Foo",
"description": "A very nice Item",
"price": 35.4,
"tax": 3.2,
}
}
pydantic 모델에서 Config
에 schema_extra
를 정의하면 된다.
Field
, Path
, Query
, Body
에도 모두 똑같이 exmple
을 추가할 수 있다.
Field
에 변수 추가하기class Item(BaseModel):
name: str = Field(..., example="Foo")
description: Optional[str] = Field(None, example="A very nice Item")
price: float = Field(..., example=35.4)
tax: Optional[float] = Field(None, example=3.2)
Body
에 변수 추가하기@app.put("/items/{item_id}")
async def update_item(
item_id: int,
item: Item = Body(
...,
example={
"name": "Foo",
"description": "A very nice Item",
"price": 35.4,
"tax": 3.2,
},
),
):
results = {"item_id": item_id, "item": item}
return results
위와 같이 설정이 되면, /docs
에 아래와 같이 설정이 된다.
너무 많기에 직접 보는 걸 추천!