Skill

ফাস্টএপিআই (FastAPI)

801

 ফাস্ট এপিআই হলো একটি আধুনিক, উচ্চ-পারফরম্যান্স, এবং সহজে ব্যবহৃত ওয়েব ফ্রেমওয়ার্ক, যা Python প্রোগ্রামিং ভাষার ওপর ভিত্তি করে তৈরি। এটি মূলত RESTful API এবং GraphQL API তৈরির জন্য ব্যবহৃত হয়। FastAPI ডেভেলপারদের জন্য অত্যন্ত দ্রুতগতির এবং ব্যবহার করা সহজ করে, একইসাথে পারফরম্যান্সের দিক থেকেও বেশ কার্যকর। এটি Asynchronous প্রোগ্রামিং সমর্থন করে এবং Python-এর টাইপ হিন্টিং-এর পুরো সুবিধা গ্রহণ করে।


FastAPI: একটি বিস্তারিত বাংলা গাইড

ভূমিকা

FastAPI হলো Python-ভিত্তিক এক দ্রুতগতির এবং আধুনিক ওয়েব ফ্রেমওয়ার্ক, যা API তৈরি করতে ব্যবহৃত হয়। FastAPI তার সহজ ব্যবহার, উচ্চ কার্যকারিতা, এবং স্বয়ংক্রিয় ডকুমেন্টেশন জেনারেশনের জন্য পরিচিত। এটি ডেভেলপারদের জন্য অত্যন্ত প্রোডাকটিভ এবং দ্রুত API তৈরি করতে সহায়ক। FastAPI বিশেষত RESTful API এবং মাইক্রোসার্ভিস তৈরি করার জন্য জনপ্রিয়।

FastAPI এর ইতিহাস

FastAPI এর প্রথম সংস্করণ মুক্তি পায় ২০১৮ সালে। এটি মূলত Sebastián Ramírez তৈরি করেছিলেন। লক্ষ্য ছিল এমন একটি ফ্রেমওয়ার্ক তৈরি করা, যা দ্রুতগতিতে কাজ করবে, Python এর টাইপ হিন্টিং সুবিধা গ্রহণ করবে এবং অল্প সময়ে উচ্চ কার্যকারিতা সম্পন্ন API তৈরি করতে সাহায্য করবে। FastAPI তার প্রকাশের পর থেকেই ডেভেলপারদের মধ্যে খুব জনপ্রিয় হয়ে ওঠে, কারণ এটি অন্যান্য API ফ্রেমওয়ার্কগুলোর তুলনায় অনেক দ্রুত এবং সহজ।

FastAPI এর ফিচারস

FastAPI অনেক উন্নত এবং ব্যবহারবান্ধব ফিচার নিয়ে আসে, যা API ডেভেলপমেন্টকে সহজ ও কার্যকর করে:

  1. দ্রুত এবং উচ্চ কার্যকারিতা: FastAPI Starlette এবং Pydantic এর উপর ভিত্তি করে তৈরি, যা দ্রুতগতিতে কাজ করে। এটি Asynchronous API এবং Concurrent Processing সহজে পরিচালনা করতে পারে।
  2. অটোমেটিক ডকুমেন্টেশন: FastAPI স্বয়ংক্রিয়ভাবে API ডকুমেন্টেশন তৈরি করে। Swagger UI এবং Redoc এর মাধ্যমে আপনার API গুলোর ডকুমেন্টেশন দেখাতে পারেন।
  3. Python টাইপ হিন্টিং: Python এর টাইপ হিন্টিং ব্যবহার করে FastAPI ইনপুট এবং আউটপুট ভ্যালিডেশন করে।
  4. আধুনিক স্ট্যান্ডার্ড সাপোর্ট: FastAPI OAuth2, JWT, CORS ইত্যাদি আধুনিক স্ট্যান্ডার্ড সাপোর্ট করে।
  5. এন্টারপ্রাইজ রেডি: FastAPI দ্রুত এবং বড় স্কেল API বা মাইক্রোসার্ভিস তৈরি করতে সক্ষম।

FastAPI ইনস্টলেশন

FastAPI ইনস্টল করার জন্য আপনার সিস্টেমে Python 3.6+ থাকতে হবে। FastAPI এর সাথে একটি ASGI সার্ভার Uvicorn ব্যবহার করা হয়।

ধাপ ১: FastAPI এবং Uvicorn ইনস্টল করা

FastAPI এবং Uvicorn ইনস্টল করার জন্য নিচের কমান্ডটি ব্যবহার করুন:

pip install fastapi uvicorn

ধাপ ২: একটি সিম্পল FastAPI অ্যাপ তৈরি করা

FastAPI এর সাহায্যে একটি সিম্পল অ্যাপ তৈরি করা খুবই সহজ। নিচের কোডটি একটি "Hello, World!" অ্যাপ তৈরি করবে।

from fastapi import FastAPI

app = FastAPI()

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

ধাপ ৩: অ্যাপ চালু করা

এই অ্যাপটি চালু করতে Uvicorn ব্যবহার করুন:

uvicorn main:app --reload

তারপর ব্রাউজারে http://127.0.0.1:8000/ এ গেলে আউটপুট দেখাবে:

{"message": "Hello, World!"}

FastAPI এর প্রধান উপাদান

১. Routes (পাথ বা রুটিং)

FastAPI এর রাউটিং সিস্টেমটি খুবই সহজ এবং Python ডেকোরেটরের মাধ্যমে কাজ করে। আপনি @app.get(), @app.post() ইত্যাদি ডেকোরেটর ব্যবহার করে বিভিন্ন HTTP পাথ তৈরি করতে পারেন।

@app.get("/items/{item_id}")
def read_item(item_id: int, q: str = None):
    return {"item_id": item_id, "q": q}

২. Request Body এবং Form Data

FastAPI ইনপুট ডেটার জন্য Pydantic মডেল ব্যবহার করে, যা ডেটা ভ্যালিডেশন সহজ করে তোলে।

from pydantic import BaseModel

class Item(BaseModel):
    name: str
    description: str = None
    price: float
    tax: float = None

@app.post("/items/")
def create_item(item: Item):
    return item

৩. Query Parameters

FastAPI সহজেই Query Parameters গ্রহণ করতে পারে। কোডটি অনেকটাই সরল এবং স্পষ্ট।

@app.get("/items/")
def read_items(q: str = None, limit: int = 10):
    return {"q": q, "limit": limit}

৪. Path Parameters

FastAPI পাথ প্যারামিটারের মাধ্যমে ডাইনামিক রাউট তৈরি করতে পারে। পাথ প্যারামিটারের জন্য Python এর টাইপ হিন্টিং ব্যবহার করা হয়।

@app.get("/users/{user_id}")
def read_user(user_id: int):
    return {"user_id": user_id}

৫. Asynchronous Routes

FastAPI সম্পূর্ণভাবে Asynchronous API সাপোর্ট করে, যেখানে async এবং await ব্যবহার করে অ্যাসিনক্রোনাস অপারেশন করা যায়।

@app.get("/async-items/")
async def read_items():
    return {"message": "This is an asynchronous request"}

৬. Authentication এবং OAuth2

FastAPI OAuth2 সহ বিভিন্ন অথেনটিকেশন প্রটোকল সাপোর্ট করে। নিচের উদাহরণে OAuth2PasswordBearer টোকেনের মাধ্যমে অথেনটিকেশন দেখানো হয়েছে।

from fastapi.security import OAuth2PasswordBearer

oauth2_scheme = OAuth2PasswordBearer(tokenUrl="token")

@app.get("/users/me")
async def read_users_me(token: str = Depends(oauth2_scheme)):
    return {"token": token}

FastAPI এর কাজের ধাপ

১. একটি রুট তৈরি করা

@app.get("/welcome")
def welcome():
    return {"message": "Welcome to FastAPI"}

২. POST রিকোয়েস্টের মাধ্যমে ডেটা গ্রহণ করা

class User(BaseModel):
    username: str
    email: str

@app.post("/users/")
def create_user(user: User):
    return {"username": user.username, "email": user.email}

৩. Asynchronous ফাংশন তৈরি করা

@app.get("/data/")
async def get_data():
    return {"data": "This is asynchronous data"}

FastAPI এর ব্যবহার

FastAPI সাধারণত ব্যবহৃত হয়:

  • RESTful API তৈরি: FastAPI দ্রুত এবং সহজে REST API তৈরি করার জন্য জনপ্রিয়।
  • মাইক্রোসার্ভিস আর্কিটেকচার: FastAPI মাইক্রোসার্ভিস তৈরিতে কার্যকর।
  • রিয়েল-টাইম অ্যাপ্লিকেশন: FastAPI এর Asynchronous সুবিধা এবং WebSocket সাপোর্ট এর মাধ্যমে রিয়েল-টাইম অ্যাপ্লিকেশন তৈরি করা যায়।

FastAPI এর সুবিধা

  1. দ্রুত পারফরম্যান্স: FastAPI উচ্চ পারফরম্যান্স প্রদান করে, যা API তৈরির জন্য অন্যতম সেরা ফ্রেমওয়ার্ক।
  2. সহজ ব্যবহারযোগ্যতা: এর সিনট্যাক্স সহজ এবং নতুন ব্যবহারকারীদের জন্য শিখতে সুবিধাজনক।
  3. স্বয়ংক্রিয় ডকুমেন্টেশন: FastAPI স্বয়ংক্রিয়ভাবে Swagger এবং Redoc ডকুমেন্টেশন তৈরি করে।
  4. টাইপ হিন্টিং সাপোর্ট: Python এর টাইপ হিন্টিং ব্যবহার করে ডেটা ভ্যালিডেশন এবং API তৈরি সহজ হয়েছে।
  5. মডুলার আর্কিটেকচার: মডুলার আর্কিটেকচার, যার ফলে মাইক্রোসার্ভিস এবং বড় স্কেল API তৈরি সহজ হয়।

FastAPI এর অসুবিধা

  1. পুরানো Python সংস্করণ সাপোর্ট না করা: FastAPI শুধুমাত্র Python 3.6 এবং এর পরবর্তী সংস্করণ সমর্থন করে।
  2. নতুনদের জন্য জটিল: FastAPI এর কিছু ফিচার, যেমন Asynchronous ফাংশন, নতুনদের জন্য কিছুটা জটিল হতে পারে।

FastAPI বনাম অন্যান্য ফ্রেমওয়ার্ক

বিষয়FastAPIDjangoFlask
পারফরম্যান্সখুব দ্রুতমাঝারিদ্রুত
API ডকুমেন্টেশনস্বয়ংক্রিয়নেইনেই
টাইপ হিন্টিং সাপোর্টহ্যাঁনানা
এ্যাসিনক্রোনাস সাপোর্টহ্যাঁসীমিতসীমিত
শেখার সহজতাসহজমাঝারিসহজ

FastAPI শেখার জন্য রিসোর্স

  1. FastAPI অফিসিয়াল ডকুমেন্টেশন: https://fastapi.tiangolo.com/
  2. YouTube টিউটোরিয়াল: "FastAPI Tutorial" নামে বিভিন্ন YouTube চ্যানেলে টিউটোরিয়াল পাওয়া যায়।
  3. বই: "Building APIs with FastAPI and Python"।

কিওয়ার্ড

  • Asynchronous: একই সময়ে একাধিক কাজ সম্পন্ন করার প্রক্রিয়া।
  • Swagger UI: API এর জন্য অটোমেটিক ডকুমেন্টেশন।
  • Path Parameters: URL এর মধ্যে ডাইনামিক প্যারামিটার গ্রহণ।
  • Query Parameters: URL এর শেষে প্রশ্নবোধক চিহ্নের পর প্যারামিটার।
  • Pydantic: ডেটা ভ্যালিডেশন এবং পার্সিংয়ের জন্য একটি টুল।

উপসংহার

FastAPI হলো Python ভিত্তিক একটি আধুনিক ও দ্রুতগতির API ফ্রেমওয়ার্ক, যা ডেভেলপারদের জন্য API এবং মাইক্রোসার্ভিস তৈরি করার প্রক্রিয়াকে দ্রুত, সহজ এবং কার্যকর করে তুলেছে। এর সহজ সিনট্যাক্স, টাইপ হিন্টিং সাপোর্ট, এবং স্বয়ংক্রিয় ডকুমেন্টেশন ফিচারগুলো FastAPI কে অন্য যেকোনো ফ্রেমওয়ার্ক থেকে আলাদা করে তুলেছে।

 ফাস্ট এপিআই হলো একটি আধুনিক, উচ্চ-পারফরম্যান্স, এবং সহজে ব্যবহৃত ওয়েব ফ্রেমওয়ার্ক, যা Python প্রোগ্রামিং ভাষার ওপর ভিত্তি করে তৈরি। এটি মূলত RESTful API এবং GraphQL API তৈরির জন্য ব্যবহৃত হয়। FastAPI ডেভেলপারদের জন্য অত্যন্ত দ্রুতগতির এবং ব্যবহার করা সহজ করে, একইসাথে পারফরম্যান্সের দিক থেকেও বেশ কার্যকর। এটি Asynchronous প্রোগ্রামিং সমর্থন করে এবং Python-এর টাইপ হিন্টিং-এর পুরো সুবিধা গ্রহণ করে।


FastAPI: একটি বিস্তারিত বাংলা গাইড

ভূমিকা

FastAPI হলো Python-ভিত্তিক এক দ্রুতগতির এবং আধুনিক ওয়েব ফ্রেমওয়ার্ক, যা API তৈরি করতে ব্যবহৃত হয়। FastAPI তার সহজ ব্যবহার, উচ্চ কার্যকারিতা, এবং স্বয়ংক্রিয় ডকুমেন্টেশন জেনারেশনের জন্য পরিচিত। এটি ডেভেলপারদের জন্য অত্যন্ত প্রোডাকটিভ এবং দ্রুত API তৈরি করতে সহায়ক। FastAPI বিশেষত RESTful API এবং মাইক্রোসার্ভিস তৈরি করার জন্য জনপ্রিয়।

FastAPI এর ইতিহাস

FastAPI এর প্রথম সংস্করণ মুক্তি পায় ২০১৮ সালে। এটি মূলত Sebastián Ramírez তৈরি করেছিলেন। লক্ষ্য ছিল এমন একটি ফ্রেমওয়ার্ক তৈরি করা, যা দ্রুতগতিতে কাজ করবে, Python এর টাইপ হিন্টিং সুবিধা গ্রহণ করবে এবং অল্প সময়ে উচ্চ কার্যকারিতা সম্পন্ন API তৈরি করতে সাহায্য করবে। FastAPI তার প্রকাশের পর থেকেই ডেভেলপারদের মধ্যে খুব জনপ্রিয় হয়ে ওঠে, কারণ এটি অন্যান্য API ফ্রেমওয়ার্কগুলোর তুলনায় অনেক দ্রুত এবং সহজ।

FastAPI এর ফিচারস

FastAPI অনেক উন্নত এবং ব্যবহারবান্ধব ফিচার নিয়ে আসে, যা API ডেভেলপমেন্টকে সহজ ও কার্যকর করে:

  1. দ্রুত এবং উচ্চ কার্যকারিতা: FastAPI Starlette এবং Pydantic এর উপর ভিত্তি করে তৈরি, যা দ্রুতগতিতে কাজ করে। এটি Asynchronous API এবং Concurrent Processing সহজে পরিচালনা করতে পারে।
  2. অটোমেটিক ডকুমেন্টেশন: FastAPI স্বয়ংক্রিয়ভাবে API ডকুমেন্টেশন তৈরি করে। Swagger UI এবং Redoc এর মাধ্যমে আপনার API গুলোর ডকুমেন্টেশন দেখাতে পারেন।
  3. Python টাইপ হিন্টিং: Python এর টাইপ হিন্টিং ব্যবহার করে FastAPI ইনপুট এবং আউটপুট ভ্যালিডেশন করে।
  4. আধুনিক স্ট্যান্ডার্ড সাপোর্ট: FastAPI OAuth2, JWT, CORS ইত্যাদি আধুনিক স্ট্যান্ডার্ড সাপোর্ট করে।
  5. এন্টারপ্রাইজ রেডি: FastAPI দ্রুত এবং বড় স্কেল API বা মাইক্রোসার্ভিস তৈরি করতে সক্ষম।

FastAPI ইনস্টলেশন

FastAPI ইনস্টল করার জন্য আপনার সিস্টেমে Python 3.6+ থাকতে হবে। FastAPI এর সাথে একটি ASGI সার্ভার Uvicorn ব্যবহার করা হয়।

ধাপ ১: FastAPI এবং Uvicorn ইনস্টল করা

FastAPI এবং Uvicorn ইনস্টল করার জন্য নিচের কমান্ডটি ব্যবহার করুন:

pip install fastapi uvicorn

ধাপ ২: একটি সিম্পল FastAPI অ্যাপ তৈরি করা

FastAPI এর সাহায্যে একটি সিম্পল অ্যাপ তৈরি করা খুবই সহজ। নিচের কোডটি একটি "Hello, World!" অ্যাপ তৈরি করবে।

from fastapi import FastAPI

app = FastAPI()

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

ধাপ ৩: অ্যাপ চালু করা

এই অ্যাপটি চালু করতে Uvicorn ব্যবহার করুন:

uvicorn main:app --reload

তারপর ব্রাউজারে http://127.0.0.1:8000/ এ গেলে আউটপুট দেখাবে:

{"message": "Hello, World!"}

FastAPI এর প্রধান উপাদান

১. Routes (পাথ বা রুটিং)

FastAPI এর রাউটিং সিস্টেমটি খুবই সহজ এবং Python ডেকোরেটরের মাধ্যমে কাজ করে। আপনি @app.get(), @app.post() ইত্যাদি ডেকোরেটর ব্যবহার করে বিভিন্ন HTTP পাথ তৈরি করতে পারেন।

@app.get("/items/{item_id}")
def read_item(item_id: int, q: str = None):
    return {"item_id": item_id, "q": q}

২. Request Body এবং Form Data

FastAPI ইনপুট ডেটার জন্য Pydantic মডেল ব্যবহার করে, যা ডেটা ভ্যালিডেশন সহজ করে তোলে।

from pydantic import BaseModel

class Item(BaseModel):
    name: str
    description: str = None
    price: float
    tax: float = None

@app.post("/items/")
def create_item(item: Item):
    return item

৩. Query Parameters

FastAPI সহজেই Query Parameters গ্রহণ করতে পারে। কোডটি অনেকটাই সরল এবং স্পষ্ট।

@app.get("/items/")
def read_items(q: str = None, limit: int = 10):
    return {"q": q, "limit": limit}

৪. Path Parameters

FastAPI পাথ প্যারামিটারের মাধ্যমে ডাইনামিক রাউট তৈরি করতে পারে। পাথ প্যারামিটারের জন্য Python এর টাইপ হিন্টিং ব্যবহার করা হয়।

@app.get("/users/{user_id}")
def read_user(user_id: int):
    return {"user_id": user_id}

৫. Asynchronous Routes

FastAPI সম্পূর্ণভাবে Asynchronous API সাপোর্ট করে, যেখানে async এবং await ব্যবহার করে অ্যাসিনক্রোনাস অপারেশন করা যায়।

@app.get("/async-items/")
async def read_items():
    return {"message": "This is an asynchronous request"}

৬. Authentication এবং OAuth2

FastAPI OAuth2 সহ বিভিন্ন অথেনটিকেশন প্রটোকল সাপোর্ট করে। নিচের উদাহরণে OAuth2PasswordBearer টোকেনের মাধ্যমে অথেনটিকেশন দেখানো হয়েছে।

from fastapi.security import OAuth2PasswordBearer

oauth2_scheme = OAuth2PasswordBearer(tokenUrl="token")

@app.get("/users/me")
async def read_users_me(token: str = Depends(oauth2_scheme)):
    return {"token": token}

FastAPI এর কাজের ধাপ

১. একটি রুট তৈরি করা

@app.get("/welcome")
def welcome():
    return {"message": "Welcome to FastAPI"}

২. POST রিকোয়েস্টের মাধ্যমে ডেটা গ্রহণ করা

class User(BaseModel):
    username: str
    email: str

@app.post("/users/")
def create_user(user: User):
    return {"username": user.username, "email": user.email}

৩. Asynchronous ফাংশন তৈরি করা

@app.get("/data/")
async def get_data():
    return {"data": "This is asynchronous data"}

FastAPI এর ব্যবহার

FastAPI সাধারণত ব্যবহৃত হয়:

  • RESTful API তৈরি: FastAPI দ্রুত এবং সহজে REST API তৈরি করার জন্য জনপ্রিয়।
  • মাইক্রোসার্ভিস আর্কিটেকচার: FastAPI মাইক্রোসার্ভিস তৈরিতে কার্যকর।
  • রিয়েল-টাইম অ্যাপ্লিকেশন: FastAPI এর Asynchronous সুবিধা এবং WebSocket সাপোর্ট এর মাধ্যমে রিয়েল-টাইম অ্যাপ্লিকেশন তৈরি করা যায়।

FastAPI এর সুবিধা

  1. দ্রুত পারফরম্যান্স: FastAPI উচ্চ পারফরম্যান্স প্রদান করে, যা API তৈরির জন্য অন্যতম সেরা ফ্রেমওয়ার্ক।
  2. সহজ ব্যবহারযোগ্যতা: এর সিনট্যাক্স সহজ এবং নতুন ব্যবহারকারীদের জন্য শিখতে সুবিধাজনক।
  3. স্বয়ংক্রিয় ডকুমেন্টেশন: FastAPI স্বয়ংক্রিয়ভাবে Swagger এবং Redoc ডকুমেন্টেশন তৈরি করে।
  4. টাইপ হিন্টিং সাপোর্ট: Python এর টাইপ হিন্টিং ব্যবহার করে ডেটা ভ্যালিডেশন এবং API তৈরি সহজ হয়েছে।
  5. মডুলার আর্কিটেকচার: মডুলার আর্কিটেকচার, যার ফলে মাইক্রোসার্ভিস এবং বড় স্কেল API তৈরি সহজ হয়।

FastAPI এর অসুবিধা

  1. পুরানো Python সংস্করণ সাপোর্ট না করা: FastAPI শুধুমাত্র Python 3.6 এবং এর পরবর্তী সংস্করণ সমর্থন করে।
  2. নতুনদের জন্য জটিল: FastAPI এর কিছু ফিচার, যেমন Asynchronous ফাংশন, নতুনদের জন্য কিছুটা জটিল হতে পারে।

FastAPI বনাম অন্যান্য ফ্রেমওয়ার্ক

বিষয়FastAPIDjangoFlask
পারফরম্যান্সখুব দ্রুতমাঝারিদ্রুত
API ডকুমেন্টেশনস্বয়ংক্রিয়নেইনেই
টাইপ হিন্টিং সাপোর্টহ্যাঁনানা
এ্যাসিনক্রোনাস সাপোর্টহ্যাঁসীমিতসীমিত
শেখার সহজতাসহজমাঝারিসহজ

FastAPI শেখার জন্য রিসোর্স

  1. FastAPI অফিসিয়াল ডকুমেন্টেশন: https://fastapi.tiangolo.com/
  2. YouTube টিউটোরিয়াল: "FastAPI Tutorial" নামে বিভিন্ন YouTube চ্যানেলে টিউটোরিয়াল পাওয়া যায়।
  3. বই: "Building APIs with FastAPI and Python"।

কিওয়ার্ড

  • Asynchronous: একই সময়ে একাধিক কাজ সম্পন্ন করার প্রক্রিয়া।
  • Swagger UI: API এর জন্য অটোমেটিক ডকুমেন্টেশন।
  • Path Parameters: URL এর মধ্যে ডাইনামিক প্যারামিটার গ্রহণ।
  • Query Parameters: URL এর শেষে প্রশ্নবোধক চিহ্নের পর প্যারামিটার।
  • Pydantic: ডেটা ভ্যালিডেশন এবং পার্সিংয়ের জন্য একটি টুল।

উপসংহার

FastAPI হলো Python ভিত্তিক একটি আধুনিক ও দ্রুতগতির API ফ্রেমওয়ার্ক, যা ডেভেলপারদের জন্য API এবং মাইক্রোসার্ভিস তৈরি করার প্রক্রিয়াকে দ্রুত, সহজ এবং কার্যকর করে তুলেছে। এর সহজ সিনট্যাক্স, টাইপ হিন্টিং সাপোর্ট, এবং স্বয়ংক্রিয় ডকুমেন্টেশন ফিচারগুলো FastAPI কে অন্য যেকোনো ফ্রেমওয়ার্ক থেকে আলাদা করে তুলেছে।

Promotion

Are you sure to start over?

Loading...