Programming Language/Python

[FastAPI] 8. Fields

LeeJaeJun 2024. 6. 19. 19:41
728x90
반응형

Field

  • Pydantic 모델 내부의 필드에서 모델 속성에 대해 추가 메타데이터 및 유효성 검사를 설정할 때 사용
    • 지금까지는 FastAPI 경로 함수의 매개변수에 대해서 Query, Path, Body를 사용
    • 기능은 유사하나 Field 함수는 Pydantic 모델 안에서 위와 같은 기능을 설정한다는 차이가 있음
from typing import Annotated

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

app = FastAPI()


class Item(BaseModel):
    name: str
    description: 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: float | None = None


@app.put("/items/{item_id}")
async def update_item(item_id: int, item: Annotated[Item, Body(embed=True)]):
    results = {"item_id": item_id, "item": item}
    return results
  • 경로 함수인 update_item의 매개변수에 대해서 설정하는 것이 아니라 Pydantic model인 Item 클래스 안에서 설정하기 위해서 Field함수를 사용
  • Field: 모델 속성에 메타데이터 추가
  • Query, Path, Body: 경로 함수 매개변수에 메타데이터 추가

https://fastapi.tiangolo.com/tutorial/body-fields/

 

Body - Fields - FastAPI

FastAPI framework, high performance, easy to learn, fast to code, ready for production

fastapi.tiangolo.com

 

728x90
반응형