API Documentation কাস্টমাইজেশন (Swagger এবং ReDoc)

Web Development - ফাস্টএপিআই (FastAPI) - FastAPI এর বেস্ট প্র্যাকটিস এবং অ্যাডভান্সড টেকনিক
208

FastAPI স্বয়ংক্রিয়ভাবে API Documentation তৈরি করে, যা Swagger UI এবং ReDoc মাধ্যমে খুবই সুন্দরভাবে প্রদর্শিত হয়। FastAPI এর OpenAPI স্পেসিফিকেশন ব্যবহার করে এই ডকুমেন্টেশন তৈরি করা হয়। আপনি API ডকুমেন্টেশনের শিরোনাম, বিবরণ, এবং অন্যান্য অংশ কাস্টমাইজ করতে পারেন। এখানে আমরা দেখব কিভাবে Swagger UI এবং ReDoc কাস্টমাইজ করা যায়।


Step 1: FastAPI অ্যাপ তৈরি করা

প্রথমে একটি সাধারণ FastAPI অ্যাপ তৈরি করি, যাতে API Documentation দেখা যাবে।

উদাহরণ: main.py

from fastapi import FastAPI

app = FastAPI(
    title="My FastAPI Application",
    description="This is a simple FastAPI application to demonstrate API Documentation customization.",
    version="1.0.0"
)

@app.get("/")
def read_root():
    return {"message": "Hello, FastAPI!"}

এখানে, FastAPI কনস্ট্রাক্টরটি title, description, এবং version প্যারামিটার ব্যবহার করে API ডকুমেন্টেশন কাস্টমাইজ করা হয়েছে। এর ফলে Swagger UI এবং ReDoc ডকুমেন্টেশন শিরোনাম এবং বিবরণ কাস্টমাইজড হবে।


Step 2: Swagger UI কাস্টমাইজেশন

FastAPI স্বয়ংক্রিয়ভাবে Swagger UI তৈরি করে এবং এটি http://127.0.0.1:8000/docs এ পাওয়া যায়। আপনি Swagger UI এর শিরোনাম, বিবরণ এবং অন্যান্য তথ্য কাস্টমাইজ করতে পারেন।

কাস্টম Swagger UI:

from fastapi import FastAPI

app = FastAPI(
    title="My Custom FastAPI",
    description="This is a custom FastAPI application to demonstrate Swagger UI customization.",
    version="1.0.1",
    docs_url="/docs"  # Swagger UI কাস্টম URL
)

@app.get("/")
def read_root():
    return {"message": "Hello, Custom FastAPI!"}
  • docs_url: Swagger UI এর জন্য কাস্টম URL সেট করতে ব্যবহার করা হয়। এখানে /docs ব্যবহার করা হয়েছে, যা ডিফল্টও থাকে।

এখন আপনি ব্রাউজারে গিয়ে http://127.0.0.1:8000/docs URL তে কাস্টম Swagger UI দেখতে পাবেন।


Step 3: ReDoc কাস্টমাইজেশন

FastAPI এছাড়াও ReDoc এর মাধ্যমে API ডকুমেন্টেশন সরবরাহ করে, যা সুন্দরভাবে এবং বিস্তারিতভাবে API এর তথ্য দেখায়। আপনি ReDoc এর জন্য কাস্টম URL এবং তথ্য সেট করতে পারেন।

কাস্টম ReDoc:

from fastapi import FastAPI

app = FastAPI(
    title="FastAPI with ReDoc",
    description="A simple FastAPI application with customized ReDoc documentation.",
    version="1.0.1",
    redoc_url="/redoc"  # ReDoc UI কাস্টম URL
)

@app.get("/")
def read_root():
    return {"message": "Hello, FastAPI with ReDoc!"}
  • redoc_url: ReDoc এর জন্য কাস্টম URL সেট করতে ব্যবহৃত হয়। এখানে /redoc ব্যবহার করা হয়েছে।

এখন আপনি ব্রাউজারে গিয়ে http://127.0.0.1:8000/redoc URL তে কাস্টম ReDoc ডকুমেন্টেশন দেখতে পাবেন।


Step 4: API Documentation কাস্টম ফিচারসমূহ

FastAPI এর মাধ্যমে API ডকুমেন্টেশনের শিরোনাম, বিবরণ, এবং বিভিন্ন অংশ কাস্টমাইজ করার আরও কিছু অপশন রয়েছে।

কাস্টম ডকুমেন্টেশন ফিচার:

  1. এন্ডপয়েন্ট ডকুমেন্টেশন কাস্টমাইজেশন: প্রতিটি API এন্ডপয়েন্টের জন্য summary এবং description যুক্ত করতে পারেন।

    @app.get("/items/{item_id}", summary="Get an item", description="Retrieve an item by its ID.")
    def get_item(item_id: int):
        return {"item_id": item_id}
    

    এখানে:

    • summary: এন্ডপয়েন্টের সংক্ষিপ্ত বর্ণনা।
    • description: এন্ডপয়েন্টের বিস্তারিত বর্ণনা।
  2. Request Body Example: আপনি প্যারামিটার বা Request Body এর জন্য উদাহরণ যুক্ত করতে পারেন।

    from pydantic import BaseModel
    
    class Item(BaseModel):
        name: str
        description: str | None = None
        price: float
        tax: float | None = None
    
    @app.post("/items/", response_model=Item)
    def create_item(item: Item):
        return item
    

    Swagger UI এবং ReDoc এই Item মডেলের জন্য স্বয়ংক্রিয়ভাবে Example দেখাবে।

  3. Response Model Example: প্রতিটি response_model এর জন্য একটি উদাহরণ যুক্ত করতে পারেন।

    @app.get("/items/{item_id}", response_model=Item)
    def get_item(item_id: int):
        return {"item_id": item_id, "name": "Example Item", "price": 123.45}
    

Step 5: OpenAPI কাস্টমাইজেশন

FastAPI এর OpenAPI স্পেসিফিকেশন কাস্টমাইজ করা সম্ভব, যা Swagger UI এবং ReDoc এর পিছনে কাজ করে। আপনি OpenAPI এর শিরোনাম, বিবরণ এবং আরও অনেক কিছু কাস্টমাইজ করতে পারেন।

কাস্টম OpenAPI:

from fastapi import FastAPI
from fastapi.openapi.models import OpenAPI

app = FastAPI(
    title="Custom OpenAPI Example",
    description="A FastAPI application with custom OpenAPI",
    version="1.0.1",
)

@app.get("/openapi")
async def get_openapi():
    openapi_schema = app.openapi()
    openapi_schema["info"]["title"] = "Custom OpenAPI Title"
    openapi_schema["info"]["description"] = "This is a custom description"
    return openapi_schema

এখানে:

  • app.openapi(): FastAPI এর স্বয়ংক্রিয় OpenAPI স্পেসিফিকেশন।
  • আপনি openapi_schema["info"] এর মাধ্যমে শিরোনাম, বিবরণ, এবং অন্যান্য তথ্য কাস্টমাইজ করতে পারেন।

Step 6: বন্ধুত্বপূর্ণ ডকুমেন্টেশন

FastAPI নিজে থেকে অটোমেটিক Swagger UI এবং ReDoc ডকুমেন্টেশন সরবরাহ করে, তবে আপনি চাইলে API Key এর মাধ্যমে নিরাপত্তা সংক্রান্ত ব্যবস্থা, OAuth2 এর মতো সিকিউরিটি মেকানিজম বা কাস্টম ফিচার যোগ করতে পারেন।


FastAPI তে Swagger UI এবং ReDoc এর মাধ্যমে API ডকুমেন্টেশন কাস্টমাইজেশন খুবই সহজ এবং শক্তিশালী। আপনি API ডকুমেন্টেশনকে আপনার প্রয়োজন অনুযায়ী কাস্টমাইজ করতে পারেন, যেমন শিরোনাম, বিবরণ, উদাহরণ, এবং অন্যান্য তথ্য কাস্টমাইজ করতে। FastAPI এর সাথে আপনি খুব সহজে ডেভেলপমেন্টের সময় API ডকুমেন্টেশনকে স্বয়ংক্রিয়ভাবে তৈরি এবং কাস্টমাইজ করতে পারবেন।

Content added By
Promotion
NEW SATT AI এখন আপনাকে সাহায্য করতে পারে।

Are you sure to start over?

Loading...