प्रकार की जांच से परे, FastAPI आपको Query, Path, और Field का उपयोग करके पथ/क्वेरी पैरामीटर और मॉडल फील्ड में बाधाएं जोड़ने देता है — लंबाई, श्रेणियां और पैटर्न जैसे नियम लागू करता है, स्वचालित 422 त्रुटियों और उल्लंघन होने पर दस्तावेज़ के साथ।
प्रकार की जांच से परे, FastAPI आपको Query, Path, और Field का उपयोग करके पथ/क्वेरी पैरामीटर और मॉडल फील्ड में बाधाएं जोड़ने देता है — लंबाई, श्रेणियां और पैटर्न जैसे नियम लागू करता है, स्वचालित 422 त्रुटियों और उल्लंघन होने पर दस्तावेज़ के साथ।
from fastapi import Query, Path
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
):
...
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 दस्तावेज़ में प्रलेखित होती हैं, इसलिए नियम एक ही घोषणा से लागू और संप्रेषित होते हैं।
सामान्य बाधाओं और विशेष सत्यापन प्रकारों को जानना सुरक्षित, अच्छी तरह परिभाषित एंडपॉइंट बनाने के लिए रोज़ का ज्ञान है — यह है कि आप बुनियादी प्रकार की जांच से आगे कैसे जाते हैं ताकि वास्तविक व्यावसायिक नियम लागू किए जाएं जो आपके डेटा को संतुष्ट करना चाहिए।