FastAPI path parameters (URL راستے کا حصہ) اور query parameters (? کے بعد) کو function arguments سے نکالتا ہے، type hints استعمال کرتے ہوئے انہیں خودکار طریقے سے تبدیل اور درست کرتا ہے۔
URL میں راستہ پیرامیٹرز
():
{: item_id}
FastAPI path parameters (URL راستے کا حصہ) اور query parameters (? کے بعد) کو function arguments سے نکالتا ہے، type hints استعمال کرتے ہوئے انہیں خودکار طریقے سے تبدیل اور درست کرتا ہے۔
():
{: item_id}
ایک function parameter جس کا نام path میں {placeholder} سے مماثل ہو، path parameter بن جاتا ہے۔ type hint (int) URL سے string کو خودکار تبدیل کرتا ہے اور اگر یہ مماثل نہ ہو تو واضح 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}
Function parameters جو path میں نہیں ہوں query parameters بن جاتے ہیں۔ ایک default value انہیں اختیاری بناتا ہے (skip: int = 0)؛ str | None = None ایک nullable اختیاری query param بناتا ہے۔ بغیر default کے، وہ ضروری ہوتے ہیں۔
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
Raastey اور query parameters وہ ہیں جن کے ذریعے endpoints URL سے input وصول کرتے ہیں — تقریباً ہر API route کے لیے بنیادی (کسی وسیلے کو id سے حاصل کرنا، filtering، pagination، تلاش)۔
FastAPI کا نقطہ نظر خوبصورت اور یہ اس کے لیے ایک اہم وجہ ہے کہ یہ نتیجہ خیز ہے: محض typed function parameters کا اعلان کرتے ہوئے آپ کو خودکار نکالنا، type تبدیلی، validation (غلط input پر واضح 422 خرابیوں کے ساتھ)، اور ضروری بمقابلہ اختیاری semantics (defaults کے ذریعے) ملتے ہیں — سب معیاری Python type hints سے اخذ کیے گئے ہیں، کوئی manual parsing نہیں۔
امتیاز کو سمجھنا (path params {placeholders} سے آتے ہیں، باقی سب کچھ query param ہے) اور کیسے defaults optionality کو کنٹرول کرتے ہیں یہ FastAPI endpoints بنانے کے لیے روزمرہ کی ضروری معلومات ہے۔