⏱️2 min read · 412 words

ফাস্টএপিআই2026 সালে সবচেয়ে দ্রুত বর্ধনশীল Python ওয়েব ফ্রেমওয়ার্ক। Starlette এবং Pydantic-এ নির্মিত, এটি স্বয়ংক্রিয়ভাবে OpenAPI ডক্স তৈরি করে, স্থানীয়ভাবে অ্যাসিঙ্ক পরিচালনা করে এবং Node.js/Go গতিতে পারফর্ম করে। এই গাইডটি প্রমাণীকরণ, ডাটাবেস এবং স্থাপনার সাথে একটি সম্পূর্ণ REST API তৈরি করে।
📋 Table of Contents
ইনস্টল করুন এবং প্রথম এন্ডপয়েন্ট
pip install fastapi uvicorn sqlalchemy pydantic[email]
# main.py
from fastapi import FastAPI
app = FastAPI(title='My API', version='1.0.0')
@app.get('/')
async def root():
return {'message': 'Hello FastAPI!'}
@app.get('/health')
async def health():
return {'status': 'ok'}
uvicorn main:app --reload
# Docs at: http://localhost:8000/docs
বৈধকরণের জন্য পাইডান্টিক মডেল
from pydantic import BaseModel, EmailStr
from typing import Optional
class UserCreate(BaseModel):
name: str
email: EmailStr
age: int
class UserResponse(BaseModel):
id: int
name: str
email: str
model_config = {'from_attributes': True}
CRUD এন্ডপয়েন্ট
from fastapi import HTTPException
# In-memory store for demo
users_db: dict[int, dict] = {}
counter = 0
@app.post('/users', response_model=UserResponse, status_code=201)
async def create_user(user: UserCreate):
global counter
counter += 1
users_db[counter] = {'id': counter, **user.model_dump()}
return users_db[counter]
@app.get('/users/{user_id}', response_model=UserResponse)
async def get_user(user_id: int):
if user_id not in users_db:
raise HTTPException(status_code=404, detail='User not found')
return users_db[user_id]
@app.put('/users/{user_id}', response_model=UserResponse)
async def update_user(user_id: int, user: UserCreate):
if user_id not in users_db:
raise HTTPException(status_code=404, detail='User not found')
users_db[user_id] = {'id': user_id, **user.model_dump()}
return users_db[user_id]
@app.delete('/users/{user_id}', status_code=204)
async def delete_user(user_id: int):
if user_id not in users_db:
raise HTTPException(status_code=404, detail='User not found')
del users_db[user_id]
JWT প্রমাণীকরণ
pip install python-jose[cryptography] passlib[bcrypt]
from fastapi.security import OAuth2PasswordBearer, OAuth2PasswordRequestForm
from jose import jwt
from passlib.context import CryptContext
from datetime import datetime, timedelta
SECRET_KEY = 'your-secret-key'
ALGORITHM = 'HS256'
pwd_ctx = CryptContext(schemes=['bcrypt'])
oauth2 = OAuth2PasswordBearer(tokenUrl='token')
def create_token(data: dict) -> str:
payload = data | {'exp': datetime.utcnow() + timedelta(hours=24)}
return jwt.encode(payload, SECRET_KEY, algorithm=ALGORITHM)
@app.post('/token')
async def login(form: OAuth2PasswordRequestForm = Depends()):
# Verify password here
token = create_token({'sub': form.username})
return {'access_token': token, 'token_type': 'bearer'}
ব্যাকগ্রাউন্ড টাস্ক
from fastapi import BackgroundTasks
def send_welcome_email(email: str):
# runs after response is sent
print(f'Sending welcome to {email}')
@app.post('/register')
async def register(user: UserCreate, bg: BackgroundTasks):
# Create user in DB...
bg.add_task(send_welcome_email, user.email)
return {'status': 'registered'}
উপসংহার
FastAPI আপনাকে স্বয়ংক্রিয়ভাবে তৈরি OpenAPI ডক্স, টাইপ-সেফ রিকোয়েস্ট/প্রতিক্রিয়া, অ্যাসিঙ্ক পারফরম্যান্স এবং বিল্ট-ইন অথ প্যাটার্ন দেয়। এটি 2026 সালে API-এর জন্য সেরা পাইথন ওয়েব ফ্রেমওয়ার্ক। ডাটাবেসের জন্য SQLAlchemy বা Tortoise ORM যোগ করুন, ডকারের সাথে স্থাপন করুন এবং আপনার কাছে ঘন্টার মধ্যে একটি উত্পাদন-প্রস্তুত API আছে।
🔗 Share this article
✍️ Leave a Comment