from typing import Union
from fastapi import FastAPI, Path, Query
app = FastAPI()
@app.get("/items/{item_id}")
async def read_items(
item_id: int = Path(title="The ID of the item to get"),
q: Union[str, None] = Query(default=None, alias="item-query"),
):
results = {"item_id": item_id}
if q:
results.update({"q": q})
return results
- Path Import 해서 경로 매개변수의 validation에 활용
- title 등의 메타데이터를 선언할 수 있다.
숫자 검증
@app.get("/items/{item_id}")
async def read_items(
*, item_id: int = Path(title="The ID of the item to get", ge=1), q: str
):
- ge : greater tahn or equal
- gt : greater than
- le : less than or equal
- integer, float에서 모두 동작
- fastapi에서 Query, Path는 모두 실제로 함수다.