Query Parameters and String Validations

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

추가적인 validation

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

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