Body - Fields

API에 메타 데이터와 설명을 추가했던것과 같이 Pydantic model안에도 Pydantic's Field를 사용하여 추가가 가능하다.

Import Field

from typing import Union

from fastapi import Body, FastAPI
**from pydantic import BaseModel, Field**

app = FastAPI()

Declare model attributes

from typing import Union

from fastapi import Body, FastAPI
from pydantic import BaseModel, Field

app = FastAPI()

class Item(BaseModel):
    name: str
    **description: Union[str, None] = Field(
        default=None, title="The description of the item", max_length=300
    )
    price: float = Field(gt=0, description="The price must be greater than zero")**
    tax: Union[float, None] = None

@app.put("/items/{item_id}")
async def update_item(item_id: int, item: Item = Body(embed=True)):
    results = {"item_id": item_id, "item": item}
    return results