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 একটি nullable ঐচ্ছিক কোয়েরি প্যারামিটার তৈরি করে। ডিফল্ট ছাড়া, তারা প্রয়োজনীয়।
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 রুটের জন্য মৌলিক (আইডি দ্বারা রিসোর্স ফেচ করা, ফিল্টারিং, পেজিনেশন, সার্চ)।
FastAPI এর পদ্ধতি কমনীয় এবং এটি উৎপাদনশীল হওয়ার একটি মূল কারণ: সহজভাবে টাইপ করা ফাংশন প্যারামিটার ঘোষণা করা আপনাকে স্বয়ংক্রিয় এক্সট্র্যাকশন, টাইপ রূপান্তর, যাচাইকরণ (খারাপ ইনপুটে স্পষ্ট 422 ত্রুটি সহ) এবং প্রয়োজনীয়-বনাম-ঐচ্ছিক অর্থবিজ্ঞান (ডিফল্টের মাধ্যমে) দেয় — সবকিছু মানক Python টাইপ হিন্ট থেকে উদ্ভূত, কোন ম্যানুয়াল পার্সিং ছাড়াই।
পার্থক্য বোঝা (পাথ প্যারামিটার {placeholders} থেকে আসে, বাকি সবকিছু একটি কোয়েরি প্যারামিটার) এবং কীভাবে ডিফল্ট ঐচ্ছিকতা নিয়ন্ত্রণ করে তা FastAPI এন্ডপয়েন্ট তৈরির জন্য অপরিহার্য দৈনন্দিন জ্ঞান।
বিস্তারিত উত্তরসহ IT ইন্টারভিউ প্রশ্নের একটি লাইব্রেরি — জুনিয়র থেকে সিনিয়র পর্যন্ত।
দান করুন