FastAPI에서 파라미터에 대한 추가적인 검증을 지원한다.
from typing import Union
from fastapi import FastAPI
app = FastAPI()
@app.get("/items/")
async def read_items(q: Union[str, None] = None):
results = {"items": [{"item_id": "Foo"}, {"item_id": "Bar"}]}
if q:
results.update({"q": q})
return results
Import Query
from typing import Union
**from fastapi import FastAPI, Query**
app = FastAPI()
@app.get("/items/")
async def read_items(q: Union[str, None] = Query(default=None, max_length=50)):
results = {"items": [{"item_id": "Foo"}, {"item_id": "Bar"}]}
if q:
results.update({"q": q})
return results
Use Query
as the default value
Query를 default값 넣는 곳에 넣고, 다양한 validation 옵션 등을 줄 수 있다.
max_length
from typing import Union
from fastapi import FastAPI, Query
app = FastAPI()
@app.get("/items/")
**async def read_items(q: Union[str, None] = Query(default=None, max_length=50)):**
results = {"items": [{"item_id": "Foo"}, {"item_id": "Bar"}]}
if q:
results.update({"q": q})
return results
from typing import Union
from fastapi import FastAPI, Query
app = FastAPI()
@app.get("/items/")
async def read_items(
**q: Union[str, None] = Query(default=None, min_length=3, max_length=50)**
):
results = {"items": [{"item_id": "Foo"}, {"item_id": "Bar"}]}
if q:
results.update({"q": q})
return results