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 એન્ડપોઇન્ટ્સ બનાવવા માટે દૈનિક આવશ્યક જ્ઞાન છે।