ডকুমেন্টেশনহ্যান্ডলার এবং ত্রুটি

বৈধতা এবং ত্রুটি

কিভাবে একটি API হ্যান্ডলার একটি খারাপ অনুরোধ রিপোর্ট.

বৈধতা

হ্যান্ডলার প্যারামিটারগুলি তাদের টীকাগুলির বিরুদ্ধে FastAPI দ্বারা যাচাই করা হয়।

src/routes/api/search.py
from nexy.http import Header  async def GET(q: str, limit: int = 10, x_token: str = Header(...)):    return {"q": q, "limit": limit}
সমস্যা স্ট্যাটাস শরীর
অনুপস্থিত বা অবৈধ ক্যোয়ারী, হেডার, কুকি বা বডি ফিল্ড 422 {"detail": [{"loc": [...], "msg": "...", "type": "..."}]}
অবৈধ পথ সেগমেন্ট (/api/users/abc এর জন্য id: int) 404 পাওয়া যায়নি পাতা, অথবা Accept: application/json এর জন্য JSON

একটি পাথ সেগমেন্ট যা রূপান্তরিত করা যায় না একটি 404 পরিবর্তে একটি 422: একটি গতিশীল রুট যেকোনো URL ক্যাপচার করে, এবং একটি URL যা রূপান্তরিত করা যায় না তার অস্তিত্ব নেই।

422 বডিটি FastAPI-এর আদর্শ আকৃতি, তাই বিদ্যমান ক্লায়েন্ট এবং জেনারেট করা SDKগুলি কাজ করে চলেছে।

ত্রুটি উত্থাপন

src/routes/api/items/[id].py
from nexy.http import HTTPException  async def GET(id: int):    item = find(id)    if item is None:        raise HTTPException(status_code=404, detail="No such item")    return item
ক্লায়েন্ট পাঠায় প্রতিক্রিয়া
Accept: application/json {"detail": "No such item"} স্ট্যাটাস সহ 404
Accept: text/html ত্রুটির পাতা
Accept: */* ত্রুটি পাতা

API ক্লায়েন্টে Accept: application/json সেট করুন। ব্রাউজার পেজ পেতে রাখা.

অব্যবহিত ব্যতিক্রম

একটি ব্যতিক্রম যে আপনার হ্যান্ডলার উত্তরগুলি ধরে না 500, একই HTML বা JSON পছন্দের সাথে।

কাস্টম প্রতিক্রিয়া

আপনি যখন শরীর নিয়ন্ত্রণ করেন তখন একটি প্রতিক্রিয়া বস্তু ফেরত দিন:

from nexy.http import JSONResponse  async def POST():    return JSONResponse({"error": "conflict"}, status_code=409)

পরবর্তী পদক্ষেপ

GitHub-এ সম্পাদনা করুন

Enter ফলাফল খোলে, Esc বন্ধ করে।