
फास्टएपीआई2026 में सबसे तेजी से बढ़ने वाला पायथन वेब फ्रेमवर्क है। स्टारलेट और पाइडेंटिक पर निर्मित, यह स्वचालित रूप से ओपनएपीआई दस्तावेज़ उत्पन्न करता है, एसिंक को मूल रूप से संभालता है, और 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}
सीआरयूडी समापन बिंदु
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]
जेडब्ल्यूटी प्रमाणीकरण
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'}
निष्कर्ष
फास्टएपीआई आपको ऑटो-जेनरेटेड ओपनएपीआई दस्तावेज़, टाइप-सुरक्षित अनुरोध/प्रतिक्रिया, एसिंक प्रदर्शन और अंतर्निहित ऑथ पैटर्न प्रदान करता है। यह 2026 में एपीआई के लिए सबसे अच्छा पायथन वेब फ्रेमवर्क है। डेटाबेस के लिए SQLAlchemy या Tortoise ORM जोड़ें, डॉकर के साथ तैनात करें, और आपके पास घंटों में उत्पादन के लिए तैयार एपीआई है।
🔗 Share this article
✍️ Leave a Comment