ফাস্ট এপিআই হলো একটি আধুনিক, উচ্চ-পারফরম্যান্স, এবং সহজে ব্যবহৃত ওয়েব ফ্রেমওয়ার্ক, যা Python প্রোগ্রামিং ভাষার ওপর ভিত্তি করে তৈরি। এটি মূলত RESTful API এবং GraphQL API তৈরির জন্য ব্যবহৃত হয়। FastAPI ডেভেলপারদের জন্য অত্যন্ত দ্রুতগতির এবং ব্যবহার করা সহজ করে, একইসাথে পারফরম্যান্সের দিক থেকেও বেশ কার্যকর। এটি Asynchronous প্রোগ্রামিং সমর্থন করে এবং Python-এর টাইপ হিন্টিং-এর পুরো সুবিধা গ্রহণ করে।
FastAPI হলো Python-ভিত্তিক এক দ্রুতগতির এবং আধুনিক ওয়েব ফ্রেমওয়ার্ক, যা API তৈরি করতে ব্যবহৃত হয়। FastAPI তার সহজ ব্যবহার, উচ্চ কার্যকারিতা, এবং স্বয়ংক্রিয় ডকুমেন্টেশন জেনারেশনের জন্য পরিচিত। এটি ডেভেলপারদের জন্য অত্যন্ত প্রোডাকটিভ এবং দ্রুত API তৈরি করতে সহায়ক। FastAPI বিশেষত RESTful API এবং মাইক্রোসার্ভিস তৈরি করার জন্য জনপ্রিয়।
FastAPI এর প্রথম সংস্করণ মুক্তি পায় ২০১৮ সালে। এটি মূলত Sebastián Ramírez তৈরি করেছিলেন। লক্ষ্য ছিল এমন একটি ফ্রেমওয়ার্ক তৈরি করা, যা দ্রুতগতিতে কাজ করবে, Python এর টাইপ হিন্টিং সুবিধা গ্রহণ করবে এবং অল্প সময়ে উচ্চ কার্যকারিতা সম্পন্ন API তৈরি করতে সাহায্য করবে। FastAPI তার প্রকাশের পর থেকেই ডেভেলপারদের মধ্যে খুব জনপ্রিয় হয়ে ওঠে, কারণ এটি অন্যান্য API ফ্রেমওয়ার্কগুলোর তুলনায় অনেক দ্রুত এবং সহজ।
FastAPI অনেক উন্নত এবং ব্যবহারবান্ধব ফিচার নিয়ে আসে, যা API ডেভেলপমেন্টকে সহজ ও কার্যকর করে:
Starlette এবং Pydantic এর উপর ভিত্তি করে তৈরি, যা দ্রুতগতিতে কাজ করে। এটি Asynchronous API এবং Concurrent Processing সহজে পরিচালনা করতে পারে।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!"}
১. 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}
১. একটি রুট তৈরি করা
@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 | Django | Flask |
|---|---|---|---|
| পারফরম্যান্স | খুব দ্রুত | মাঝারি | দ্রুত |
| API ডকুমেন্টেশন | স্বয়ংক্রিয় | নেই | নেই |
| টাইপ হিন্টিং সাপোর্ট | হ্যাঁ | না | না |
| এ্যাসিনক্রোনাস সাপোর্ট | হ্যাঁ | সীমিত | সীমিত |
| শেখার সহজতা | সহজ | মাঝারি | সহজ |
FastAPI হলো Python ভিত্তিক একটি আধুনিক ও দ্রুতগতির API ফ্রেমওয়ার্ক, যা ডেভেলপারদের জন্য API এবং মাইক্রোসার্ভিস তৈরি করার প্রক্রিয়াকে দ্রুত, সহজ এবং কার্যকর করে তুলেছে। এর সহজ সিনট্যাক্স, টাইপ হিন্টিং সাপোর্ট, এবং স্বয়ংক্রিয় ডকুমেন্টেশন ফিচারগুলো FastAPI কে অন্য যেকোনো ফ্রেমওয়ার্ক থেকে আলাদা করে তুলেছে।
ফাস্ট এপিআই হলো একটি আধুনিক, উচ্চ-পারফরম্যান্স, এবং সহজে ব্যবহৃত ওয়েব ফ্রেমওয়ার্ক, যা Python প্রোগ্রামিং ভাষার ওপর ভিত্তি করে তৈরি। এটি মূলত RESTful API এবং GraphQL API তৈরির জন্য ব্যবহৃত হয়। FastAPI ডেভেলপারদের জন্য অত্যন্ত দ্রুতগতির এবং ব্যবহার করা সহজ করে, একইসাথে পারফরম্যান্সের দিক থেকেও বেশ কার্যকর। এটি Asynchronous প্রোগ্রামিং সমর্থন করে এবং Python-এর টাইপ হিন্টিং-এর পুরো সুবিধা গ্রহণ করে।
FastAPI হলো Python-ভিত্তিক এক দ্রুতগতির এবং আধুনিক ওয়েব ফ্রেমওয়ার্ক, যা API তৈরি করতে ব্যবহৃত হয়। FastAPI তার সহজ ব্যবহার, উচ্চ কার্যকারিতা, এবং স্বয়ংক্রিয় ডকুমেন্টেশন জেনারেশনের জন্য পরিচিত। এটি ডেভেলপারদের জন্য অত্যন্ত প্রোডাকটিভ এবং দ্রুত API তৈরি করতে সহায়ক। FastAPI বিশেষত RESTful API এবং মাইক্রোসার্ভিস তৈরি করার জন্য জনপ্রিয়।
FastAPI এর প্রথম সংস্করণ মুক্তি পায় ২০১৮ সালে। এটি মূলত Sebastián Ramírez তৈরি করেছিলেন। লক্ষ্য ছিল এমন একটি ফ্রেমওয়ার্ক তৈরি করা, যা দ্রুতগতিতে কাজ করবে, Python এর টাইপ হিন্টিং সুবিধা গ্রহণ করবে এবং অল্প সময়ে উচ্চ কার্যকারিতা সম্পন্ন API তৈরি করতে সাহায্য করবে। FastAPI তার প্রকাশের পর থেকেই ডেভেলপারদের মধ্যে খুব জনপ্রিয় হয়ে ওঠে, কারণ এটি অন্যান্য API ফ্রেমওয়ার্কগুলোর তুলনায় অনেক দ্রুত এবং সহজ।
FastAPI অনেক উন্নত এবং ব্যবহারবান্ধব ফিচার নিয়ে আসে, যা API ডেভেলপমেন্টকে সহজ ও কার্যকর করে:
Starlette এবং Pydantic এর উপর ভিত্তি করে তৈরি, যা দ্রুতগতিতে কাজ করে। এটি Asynchronous API এবং Concurrent Processing সহজে পরিচালনা করতে পারে।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!"}
১. 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}
১. একটি রুট তৈরি করা
@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 | Django | Flask |
|---|---|---|---|
| পারফরম্যান্স | খুব দ্রুত | মাঝারি | দ্রুত |
| API ডকুমেন্টেশন | স্বয়ংক্রিয় | নেই | নেই |
| টাইপ হিন্টিং সাপোর্ট | হ্যাঁ | না | না |
| এ্যাসিনক্রোনাস সাপোর্ট | হ্যাঁ | সীমিত | সীমিত |
| শেখার সহজতা | সহজ | মাঝারি | সহজ |
FastAPI হলো Python ভিত্তিক একটি আধুনিক ও দ্রুতগতির API ফ্রেমওয়ার্ক, যা ডেভেলপারদের জন্য API এবং মাইক্রোসার্ভিস তৈরি করার প্রক্রিয়াকে দ্রুত, সহজ এবং কার্যকর করে তুলেছে। এর সহজ সিনট্যাক্স, টাইপ হিন্টিং সাপোর্ট, এবং স্বয়ংক্রিয় ডকুমেন্টেশন ফিচারগুলো FastAPI কে অন্য যেকোনো ফ্রেমওয়ার্ক থেকে আলাদা করে তুলেছে।
আপনি আমাকে যেকোনো প্রশ্ন করতে পারেন, যেমনঃ
Are you sure to start over?