टाइप जाँचको बाहिरै, FastAPI ले Query, Path, र Field प्रयोग गरेर पथ/क्वेरी प्यारामिटरहरू र मडेल फिल्डहरूमा बाध्यताहरू थप्न दिन्छ — लम्बाई, दायराहरू, र ढाँचाहरू जस्ता नियमहरू लागू गर्दै, उल्लंघन गर्दा स्वचालित 422 त्रुटिहरू र दस्तावेजीकरण गर्दै।
टाइप जाँचको बाहिरै, FastAPI ले Query, Path, र Field प्रयोग गरेर पथ/क्वेरी प्यारामिटरहरू र मडेल फिल्डहरूमा बाध्यताहरू थप्न दिन्छ — लम्बाई, दायराहरू, र ढाँचाहरू जस्ता नियमहरू लागू गर्दै, उल्लंघन गर्दा स्वचालित 422 त्रुटिहरू र दस्तावेजीकरण गर्दै।
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() र Path() ले क्वेरी र पथ प्यारामिटरहरूमा बाध्यताहरू थप्छन्। सामान्य हरू: min_length/max_length (स्ट्रिङहरू), ge/gt/le/lt (संख्याहरू), pattern (regex)। उल्लंघनहरूले स्वचालित रूपमा स्पष्ट 422 त्रुटि उत्पन्न गर्छन्।
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")
Field() को माध्यमबाट मडेल फिल्डहरूमा समान बाध्यताहरू लागू हुन्छन्, अनुरोध निकायहरू सत्यापन गर्दै। विशेषीकृत प्रकारहरू (EmailStr, HttpUrl, UUID) ढाँचाहरू सत्यापन गर्छन्।
q: str = Query(min_length=3, description="Search query", example="phone")
# the constraints + description + example appear in the auto-generated API docs
तपाईंले घोषणा गरेको प्रत्येक बाध्यता OpenAPI दस्तावेजीकरणमा पनि प्रतिबिम्बित हुन्छ, त्यसैले उपभोक्ताहरूले नियमहरू देख्छन्।
सत्यापन बाध्यताहरू थप्नु सुरक्षा/दृढता र राम्रो API डिजाइन दुवै को लागि महत्त्वपूर्ण छ — नियमहरू घोषणा गर्नु (लम्बाई सीमाहरू, संख्यात्मक दायराहरू, regex ढाँचाहरू, ढाँचा प्रकारहरू) सुनिश्चित गर्छ कि गलत वा दुर्भावनापूर्ण इनपुट आपको तर्क तक पुग्नु अघि स्पष्ट त्रुटिहरू সহ अस्वीकार गरिन्छ, जो अत्यावश्यक छ किनभने तपाईंले कहिलै पनि कच्चा इनपुट माथिर विश्वास गर्न हुँदैन।
FastAPI ले यसलाई घोषणापत्र र सहजलाई गर्छ: Query/Path/Field बाध्यताहरू स्वचालित रूपमा सत्यापित हुन्छन् (संरचित 422 त्रुटिहरू उत्पन्न गर्दै) र एकै साथ API दस्तावेजहरूमा दस्तावेजित हुन्छन्, त्यसैले नियमहरू एक घोषणाबाट लागू र संचारित हुन्छन्।
सामान्य बाध्यताहरू र विशेषीकृत सत्यापन प्रकारहरू बुझ्नु सुरक्षित, राम्रोसँग परिभाषित एन्डपोइन्टहरू निर्माण गर्ने लागि दैनिक ज्ञान हो — यो कसरी मूल टाइप जाँचको बाहिरै जान आपको डाटा सन्तुष्ट गर्नुपर्छ भन्ने वास्तविक व्यावसायिक नियमहरू लागू गर्न।