## Bases & syntaxe
### Importation de FastAPI
```fastapi
from fastapi import FastAPI
Importer la classe FastAPI pour créer l'application.
Création d'une application FastAPI
app = FastAPI()
Créer une instance de l'application FastAPI.
Structures de données
Dictionnaire simple en Python
user_data = {"name": "John", "age": 30}
Utiliser un dictionnaire pour stocker des informations utilisateur.
Route avec paramètres dynamiques
@app.get("/users/{user_id}")
async def read_user(user_id: int):
return {"user_id": user_id}
Créer une route qui accepte un paramètre dynamique (
{user_id}).
Fonctions & methodes essentielles
Retourner un dictionnaire sous forme de réponse JSON
@app.get("/items/")
async def read_items():
return {"item_id": "Foo", "q": None}
Retourner des données au format JSON.
Utilisation du décorateur @app.post()
from pydantic import BaseModel
class Item(BaseModel):
name: str
description: str = None
price: float
tax: float = None
@app.post("/items/")
async def create_item(item: Item):
return item
Créer une route POST qui accepte des données JSON.
Patterns courants
Utilisation de pydantic pour la validation et le structuration des données
from pydantic import BaseModel
class User(BaseModel):
name: str
email: str
password: str
Valider les données avec Pydantic.
Utilisation du décorateur @app.put()
@app.put("/items/{item_id}")
async def update_item(item_id: int, item: Item):
return {"item_id": item_id, **item.dict()}
Mettre à jour des données existantes avec une requête PUT.
Operations avancees
Utilisation de uvicorn pour l'exécution de l'application
uvicorn main:app --reload
Exécuter l'application FastAPI avec un serveur auto-rechargement.
Utilisation de asyncio pour des opérations asynchrones
import asyncio
@app.get("/items/async/")
async def read_items():
await asyncio.sleep(1)
return {"item_id": "Foo"}
Effectuer des opérations asynchrones.
Debugging & outils
Utilisation de logging pour le débogage
import logging
logging.basicConfig(level=logging.DEBUG)
@app.get("/items/debug/")
async def debug_items():
logging.debug("Debug message")
return {"message": "Debugged"}
Ajouter des messages de débogage.
Utilisation de fastapi.middleware.cors pour la gestion du CORS
from fastapi import FastAPI, Depends
from fastapi.middleware.cors import CORSMiddleware
app = FastAPI()
origins = [
"http://localhost",
"http://localhost:8080",
]
app.add_middleware(
CORSMiddleware,
allow_origins=origins,
allow_credentials=True,
allow_methods=["*"],
allow_headers=["*"],
)
Configurer le middleware CORS pour les applications web frontales.