fastapi/docs_src/query_params_str_validations/tutorial006c_an.py

21 lines
438 B
Python

from typing import Optional, Union
from fastapi import FastAPI, Query
from pydantic import BeforeValidator
from typing_extensions import Annotated
app = FastAPI()
def nullable_str(val: str) -> Union[str, None]:
if val in ("None", "", "null"):
return None
return val
@app.get("/items/")
async def read_items(
q: Annotated[Optional[str], Query(min_length=3), BeforeValidator(nullable_str)],
):
return {"q": q}