FastAPI combine des performances proches de Node.js avec la simplicite de Python.
Structure d’un projet serieux
api/
|-- main.py
|-- routers/
| |-- users.py
| +-- orders.py
|-- models/
|-- services/
|-- database.py
+-- dependencies.py
Validation avec Pydantic
from pydantic import BaseModel, EmailStr, validator
class UserCreate(BaseModel):
email: EmailStr
name: str
age: int
@validator('age')
def age_must_be_adult(cls, v):
if v < 18:
raise ValueError('Utilisateur doit etre majeur')
return v
Injection de dependances
from fastapi import Depends, HTTPException
async def get_current_user(token: str = Depends(oauth2_scheme)):
user = verify_token(token)
if not user:
raise HTTPException(status_code=401, detail="Token invalide")
return user
@router.get("/profile")
async def get_profile(current_user = Depends(get_current_user)):
return current_user
Deploiement avec Gunicorn
gunicorn main:app --workers 4 --worker-class uvicorn.workers.UvicornWorker --bind 0.0.0.0:8000
Notre formation Python aborde FastAPI et les APIs REST modernes.