FastAPI फंक्शन आर्गुमेंट्समधून पथ पैरामीटर (URL पथचा भाग) आणि प्रश्न पैरामीटर (? नंतर) काढून घेते, स्वयंचलित रूपांतर आणि सत्यापनासाठी प्रकार संकेत वापरून.
पथ पैरामीटर — URL चा भाग
():
{: item_id}
FastAPI फंक्शन आर्गुमेंट्समधून पथ पैरामीटर (URL पथचा भाग) आणि प्रश्न पैरामीटर (? नंतर) काढून घेते, स्वयंचलित रूपांतर आणि सत्यापनासाठी प्रकार संकेत वापरून.
():
{: item_id}
एक फंक्शन पैरामीटर ज्याचे नाव मार्गातील {placeholder} शी जुळते ते पथ पैरामीटर बनते. प्रकार संकेत (int) URL वरून स्ट्रिंग स्वयंचलितरित्या रूपांतरित करतो आणि जर ते जुळत नसेल तर स्पष्ट 422 त्रुटी मिळते.
@app.get("/items")
def list_items(skip: int = 0, limit: int = 10, q: str | None = None):
# parameters NOT in the path become QUERY parameters
# GET /items?skip=20&limit=5&q=phone → skip=20, limit=5, q="phone"
return {"skip": skip, "limit": limit, "q": q}
मार्गात नाही असलेले फंक्शन पैरामीटर प्रश्न पैरामीटर बनतात. डिफॉल्ट मान त्यांना वैकल्पिक बनवते (skip: int = 0); str | None = None एक शून्य वैकल्पिक प्रश्न पैरामीटर बनवते. डिफॉल्ट व्यतिरिक्त, ते आवश्यक आहेत.
def search(q: str): # REQUIRED query param (no default) → ?q=... must be present
def search(q: str = ""): # optional, defaults to ""
def search(q: str | None = None): # optional, defaults to None
@app.get("/users/{user_id}/items")
def user_items(user_id: int, limit: int = 10):
# user_id = path param, limit = query param — distinguished by the path
पथ आणि प्रश्न पैरामीटर हे आहेत की एंडपॉइंट्स URL वरून इनपुट कसे प्राप्त करतात — लगभग प्रत्येक API मार्गासाठी मूलभूत (id द्वारे संसाधन प्राप्त करणे, फिल्टरिंग, पृष्ठांकन, शोध).
FastAPI चा दृष्टिकोन मार्जित आहे आणि तो उत्पादनशील असण्याचे मुख्य कारण आहे: केवळ टाइप केलेले फंक्शन पैरामीटर घोषित केल्याने तुम्हाला स्वयंचलित अर्क, प्रकार रूपांतरण, सत्यापन (खराब इनपुट वर स्पष्ट 422 त्रुटी) आणि आवश्यक-विरुद्ध-वैकल्पिक सिमेंटिक्स (डिफॉल्ट द्वारे) मिळते — सर्व मानक Python प्रकार संकेत प्राप्त, हाताची पार्सिंग शिवाय.
पथ पैरामीटर {placeholders} वरून येतात हा अंतर समजून घेणे, बाकी सर्वकाही प्रश्न पैरामीटर आहे आणि डिफॉल्ट वैकल्पिकता कसे नियंत्रित करतात हे FastAPI एंडपॉइंट बांधण्यासाठी आवश्यक दैनंदिन ज्ञान आहे.