Publié · en amélioration
Framework · Depuis 2018
FastAPI est un framework web Python performant pour créer des API, qui s'appuie sur les annotations de type pour valider, sérialiser et documenter.
FastAPI est un framework moderne pour créer des API web en Python. Sebastián Ramírez l'a publié pour la première fois en 2018, et il est développé en open source avec une large communauté de contributeurs. Il repose sur Starlette pour la couche web et sur Pydantic pour la validation des données : les annotations de type des paramètres suffisent pour convertir et valider les requêtes, sérialiser les réponses et générer une description OpenAPI de l'API.
FastAPI convient particulièrement là où la validation des entrées et la documentation comptent : backends REST, microservices, mise à disposition de modèles de machine learning et outils internes. Comme il fonctionne sur ASGI, les endpoints async gèrent efficacement de nombreuses connexions simultanées, tandis que les fonctions def classiques restent utilisables. Son système d'injection de dépendances permet d'isoler les sessions de base de données, l'authentification et la configuration, puis de les remplacer facilement dans les tests.
Pour commencer, créez un environnement virtuel, installez le framework avec pip install "fastapi[standard]", lancez fastapi dev main.py et ouvrez /docs pour appeler vos endpoints depuis la documentation interactive. Le guide officiel Tutorial - User Guide progresse pas à pas des paramètres de chemin jusqu'à la sécurité, aux bases de données et aux tests, et se lit dans l'ordre. Une fois à l'aise avec les annotations de type Python et les modèles Pydantic, l'essentiel de FastAPI devient intuitif.
Les types des paramètres et les modèles Pydantic suffisent pour convertir et valider les données de requête, avec des erreurs détaillées en cas d'entrée invalide.
Un schéma OpenAPI est généré à partir du code et servi sous forme de documentation interactive à /docs (Swagger UI) et /redoc.
Déclarez sessions de base de données, authentification ou paramètres communs avec Depends ; FastAPI les résout à chaque requête et les tests peuvent les remplacer.
Bâtis sur Starlette et ASGI, les endpoints async def gèrent efficacement de nombreuses connexions simultanées, aux côtés des fonctions def classiques.
Créez et activez un environnement virtuel Python dans le dossier du projet. La commande ci-dessous concerne macOS et Linux ; sous Windows, activez-le avec .venv\Scripts\activate.
python -m venv .venv && source .venv/bin/activateInstallez FastAPI avec les extras standard, qui apportent des dépendances courantes comme le serveur Uvicorn et l'outil en ligne de commande fastapi.
pip install "fastapi[standard]"Créez main.py et démarrez le serveur de développement. Il se recharge automatiquement à chaque modification, et http://127.0.0.1:8000/docs affiche la documentation interactive de l'API.
fastapi dev main.pyFastAPI() crée l'application, et le décorateur @app.get associe un chemin et une méthode HTTP à une fonction. Le dictionnaire renvoyé devient une réponse JSON. Dans le second endpoint, item_id: int convertit et valide la valeur du chemin comme entier, tandis que q, qui a une valeur par défaut, devient un paramètre de requête facultatif. Lancez fastapi dev main.py et essayez les deux endpoints depuis /docs.
main.py
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
def read_root():
return {"message": "Hello, world!"}
@app.get("/items/{item_id}")
def read_item(item_id: int, q: str | None = None):
return {"item_id": item_id, "q": q}
pip install "fastapi[standard]"
fastapi dev main.pySix chapitres pour aller de l'installation aux notions essentielles de FastAPI.
Posez vos questions, partagez votre expérience et échangez vos avis sur FastAPI.
Aucune discussion pour l'instant. Lancez la première.
0 commentaire
Se connecter · Connectez-vous pour laisser un commentaire.
Soyez le premier à commenter.