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/
728x90
반응형
'Programming Language > Python' 카테고리의 다른 글
[FastAPI] 10. Form Data & Request File (0) | 2024.06.20 |
---|---|
[FastAPI] 9. Extra Data Types (0) | 2024.06.19 |
[FastAPI] 7. Body Parameter (0) | 2024.06.19 |
[FastAPI] 6. Path Parameters (Annotated, Path, *) (0) | 2024.06.19 |
[FastAPI] 5. Query Parameters(Annotated, Query) (0) | 2024.06.19 |