Utover typekontroll lar FastAPI deg legge til begrensninger på sti-/søkeparametere og modellfelt ved hjelp av Query, Path og Field — som håndhever regler som lengde, områder og mønstre, med automatiske 422-feil og dokumentasjon når de brytes.
Utover typekontroll lar FastAPI deg legge til begrensninger på sti-/søkeparametere og modellfelt ved hjelp av Query, Path og Field — som håndhever regler som lengde, områder og mønstre, med automatiske 422-feil og dokumentasjon når de brytes.
from fastapi import Query, Path
@app.get("/items")
def search(
q: str = Query(min_length=3, max_length=50), # string length bounds
page: int = Query(default=1, ge=1), # >= 1
limit: int = Query(default=10, ge=1, le=100), # 1 <= limit <= 100
code: str = Query(pattern=r"^[A-Z]{3}$"), # regex pattern
):
...
@app.get("/items/{item_id}")
def get(item_id: int = Path(ge=1)): # path param must be >= 1
...
Query() og Path() legger til begrensninger på søke- og stiparametere. Vanlige: min_length/max_length (strenger), ge/gt/le/lt (tall), pattern (regex). Brudd gir automatisk en klar 422-feil.
from pydantic import BaseModel, Field, EmailStr
class User(BaseModel):
name: str = Field(min_length=1, max_length=100)
age: int = Field(ge=0, le=120)
email: EmailStr # format validation via a type
bio: str = Field(default="", max_length=500, description="User bio")
De samme begrensningene gjelder modellfelt via Field(), som validerer forespørselstekster. Spesialiserte typer (EmailStr, HttpUrl, UUID) validerer formater.
q: str = Query(min_length=3, description="Search query", example="phone")
# the constraints + description + example appear in the auto-generated API docs
Hver begrensning du deklarerer reflekteres også i OpenAPI-dokumentasjonen, slik at forbrukere ser reglene.
Å legge til valideringsbegrensninger er viktig både for sikkerhet/robusthet og god API-design — ved å deklarere regler (lengdegrenser, numeriske områder, regex-mønstre, formattyper) sikrer du at misdannet eller ondsinnet inndata avvises med klare feil før de når din logikk, noe som er essensielt siden du aldri må stole på råinput.
FastAPI gjør dette deklarativt og enkelt: Query/Path/Field-begrensninger valideres automatisk (produserer strukturerte 422-feil) og dokumenteres samtidig i API-dokumentene, slik at reglene håndheves og kommuniseres fra en enkelt deklarasjon.
Å kjenne til vanlige begrensninger og spesialiserte valideringstyper er hverdagskunnskapen for å bygge sikre, veldefinerte endepunkter — det er hvordan du går forbi grunnleggende typekontroll til å håndheve de faktiske forretningsreglene dataene dine må oppfylle.