🌐 Detecting your location…
📢 Advertisement — Configure AdSense in Appearance → Customize → AdSense Settings

FastAPI REST API গাইড 2026: Python দিয়ে প্রোডাকশন API তৈরি করুন

⏱️2 min read  ·  412 words
FastAPI REST API Guide 2026: Build Production APIs with Python

ফাস্টএপিআই2026 সালে সবচেয়ে দ্রুত বর্ধনশীল Python ওয়েব ফ্রেমওয়ার্ক। Starlette এবং Pydantic-এ নির্মিত, এটি স্বয়ংক্রিয়ভাবে OpenAPI ডক্স তৈরি করে, স্থানীয়ভাবে অ্যাসিঙ্ক পরিচালনা করে এবং Node.js/Go গতিতে পারফর্ম করে। এই গাইডটি প্রমাণীকরণ, ডাটাবেস এবং স্থাপনার সাথে একটি সম্পূর্ণ REST API তৈরি করে।

ইনস্টল করুন এবং প্রথম এন্ডপয়েন্ট

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 আছে।

✍️ Leave a Comment

Your email address will not be published. Required fields are marked *

🌐 Read in:🇬🇧 English🇩🇪 Deutsch🇧🇷 Português🇸🇦 العربية🇮🇳 हिन्दी🇧🇩 বাংলা