Beyond type checking, FastAPI lets you add constraints to path/query parameters and model fields using Query, Path, and Field — enforcing rules like length, ranges, and patterns, with automatic 422 errors and documentation when violated.
Beyond type checking, FastAPI lets you add constraints to path/query parameters and model fields using Query, Path, and Field — enforcing rules like length, ranges, and patterns, with automatic 422 errors and documentation when violated.
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() and Path() add constraints to query and path parameters. Common ones: min_length/max_length (strings), ge/gt/le/lt (numbers), pattern (regex). Violations produce a clear 422 error automatically.
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")
The same constraints apply to model fields via Field(), validating request bodies. Specialized types (EmailStr, HttpUrl, UUID) validate formats.
q: str = Query(min_length=3, description="Search query", example="phone")
# the constraints + description + example appear in the auto-generated API docs
Every constraint you declare is also reflected in the OpenAPI documentation, so consumers see the rules.
Nambahake batasan validasi iku penting kanggo keamanan/robustness lan desain API sing apik — nyatakake aturan (batas panjang, jangkauan numerik, pola regex, tipe format) mesthine input sing cacat utawa jahat ditolak karo kesalahan sing jelas sadurunge teka menyang logika sampeyan, sing penting amarga sampeyan kudu ora pernah percaya input mentah.
FastAPI nggawe iki deklaratif lan gampang: Query/Path/Field constraints divalidasi sacara otomatis (ngasilake kesalahan 422 terstruktur) lan samangsaning didokumentasikan ing API docs, mula aturan iku ditegakake lan dikomunikasikan saka deklarasi siji.
Ngenggoleki batasan sing umum lan jenis validasi khusus iku pengetahuan saben dina kanggo mbangun endpoint sing aman lan terdefinisi kanthi baik — iku carane sampeyan ngluwihi pemeriksaan tipe dasar kanggo menerapkan aturan bisnis nyata sing data sampeyan kudu penuhi.