أصبح FastAPI واحدًا من أشهر أطر العمل الحديثة في Python لبناء REST APIs بسرعة كبيرة وأداء مرتفع. يعتمد على Type Hints وPydantic ويولد توثيق Swagger تلقائياً.
لماذا FastAPI؟
يوفر FastAPI مزيجًا ممتازًا بين الأداء وسهولة التطوير.
- سرعة عالية جداً.
- توثيق Swagger تلقائي.
- دعم Type Hints.
- دعم JWT Authentication.
- توليد OpenAPI تلقائياً.
- دعم Async Programming.
تثبيت FastAPI
pip install fastapi uvicorn
إنشاء أول مشروع
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
def home():
return {
"message":"Hello FastAPI"
}
uvicorn main:app --reload
Swagger UI
يمكنك اختبار الـ API مباشرة من المتصفح.
http://127.0.0.1:8000/docs
إنشاء Endpoint
@app.get("/users/{id}")
def get_user(id:int):
return {
"id":id
}
استخدام Pydantic
from pydantic import BaseModel
class User(BaseModel):
name:str
age:int
@app.post("/users")
def create_user(user:User):
return user
JWT Authentication
في المشاريع الحقيقية تحتاج إلى حماية البيانات باستخدام Tokens.
pip install python-jose passlib
يفضل استخدام Access Tokens قصيرة المدة مع Refresh Tokens لزيادة الأمان.
تنظيم المشروع
app/
├── main.py
├── routers/
├── models/
├── schemas/
├── database/
├── services/
└── auth/
ربط قاعدة البيانات
- PostgreSQL
- MySQL
- SQLite
- MongoDB
نشر المشروع
- Railway
- Render
- DigitalOcean
- Ubuntu VPS
الخلاصة
يعتبر FastAPI من أفضل الخيارات الحالية لبناء Backends حديثة باستخدام Python بفضل الأداء العالي وسهولة التطوير والتوثيق التلقائي.