Bibliothèque / SDK
fastapi/fastapi avatar
fastapi/fastapi

FastAPI, des indications de type aux contrats OpenAPI

Framework FastAPI, hautes performances, facile à apprendre, rapide à coder, prêt pour la production

102 351 étoiles9 888 forksPythonMIT

En bref

De quoi s’agit-il ?
FastAPI transforme les annotations Python et les modèles Pydantic en validation, sérialisation et documentation interactive autour de routes ASGI.
À qui s’adresse-t-il ?
FastAPI, des indications de type aux contrats OpenAPI convient aux lecteurs dont le besoin correspond aux fichiers et au flux documentés. Il ne convient pas à une adoption à l aveugle : commencez par créer main.py avec /items/{item_id}, lancer uv run fastapi dev, puis comparer la validation, /docs et /redoc après ajout du modèle put décrit dans le readme.
Puis-je l’utiliser commercialement ?
Oui. MIT est une licence permissive : vous pouvez utiliser, modifier et vendre un logiciel qui en dépend, à condition de conserver les mentions de droit d’auteur et de licence.
Est-il encore maintenu ?
Oui. Les derniers commits datent d’il y a 1 jour.
En quel langage est-il écrit ?
Principalement Python, d’après les statistiques de langage de GitHub.

Ces réponses reposent sur les données GitHub du projet (dernière synchronisation le 15 septembre 2026) et sur notre analyse. Elles ne constituent pas un avis juridique.

ANALYSE OPEN SOURCE APPROFONDIE

FastAPI, des indications de type aux contrats OpenAPI : Le périmètre annoncé

Le README commence par définir FastAPI comme un framework web moderne et rapide pour construire des API en Python, basé sur les indications de type standard de Python. Il énumère ensuite les fonctionnalités clés : hautes performances comparables à NodeJS et Go, développement de fonctionnalités accéléré d'environ 200 % à 300 %, réduction d'environ 40 % des erreurs induites par les développeurs, bon support de l'éditeur, apprentissage facile, duplication de code minimale, code prêt pour la production avec documentation interactive automatique, et compatibilité complète avec OpenAPI et JSON Schema. Le README attribue les estimations de performance et d'erreur à des tests menés par une équipe de développement interne, et non à des benchmarks indépendants.

FastAPI, des indications de type aux contrats OpenAPI : Les composants à suivre

Le README dit que FastAPI s'appuie sur des géants : Starlette pour les parties web et Pydantic pour les parties données. La section des dépendances le répète, listant Pydantic et Starlette comme dépendances requises. Le README explique également que Starlette fournit des capacités web telles que les WebSockets, CORS, les sessions de cookies et des tests faciles avec HTTPX et pytest, tandis que Pydantic gère la validation et la sérialisation des données. L'exemple montre comment les modèles Pydantic sont utilisés pour les corps de requête.

FastAPI, des indications de type aux contrats OpenAPI : Le scénario d utilisation

Le README guide à travers la création d'un fichier main.py avec une instance FastAPI et deux routes GET : une racine renvoyant un objet JSON et une route /items/{item_id} qui prend un paramètre de chemin entier et un paramètre de requête optionnel q. Il montre ensuite l'exécution du serveur avec `uv run fastapi dev`, qui détecte automatiquement l'application et sert à http://127.0.0.1:8000. Le README explique que le framework valide item_id comme entier et q comme chaîne optionnelle, et convertit automatiquement les données en et depuis JSON.

FastAPI, des indications de type aux contrats OpenAPI : Les limites visibles

Le README modifie ensuite l'exemple pour ajouter un point de terminaison PUT à /items/{item_id}. Le corps de la requête est déclaré comme un modèle Pydantic avec name (str), price (float) et is_offer (bool) optionnel. Le README note que cette seule déclaration de type fournit une validation avec des erreurs claires, une conversion des entrées du JSON vers les objets Python, une conversion des sorties de retour vers JSON, et la prise en charge des objets JSON profondément imbriqués. Il mentionne également que la complétion de l'éditeur et les vérifications de type fonctionnent sur ces attributs.

FastAPI, des indications de type aux contrats OpenAPI : La lecture du code

Après l'exemple, le README pointe vers deux interfaces de documentation automatiques : Swagger UI sur /docs et ReDoc sur /redoc. Il explique que le framework documente tout avec OpenAPI, qui peut également être utilisé pour la génération automatique de code client. Le README montre que lorsque le point de terminaison PUT est ajouté, les deux interfaces de documentation se mettent à jour pour refléter le nouveau schéma de corps.

FastAPI, des indications de type aux contrats OpenAPI : La configuration exposée

Le README recommande d'installer FastAPI avec uv, en utilisant `uv add "fastapi[standard]"`. Il indique que l'extra standard inclut des dépendances telles que email-validator, httpx, jinja2, python-multipart, uvicorn et fastapi-cli. Le README mentionne également que si vous ne voulez pas des extras standard, vous pouvez installer avec `uv add fastapi`, et qu'il existe une variante sans fastapi-cloud-cli. Des dépendances optionnelles supplémentaires comme orjson et ujson sont répertoriées pour des types de réponse spécifiques.

FastAPI, des indications de type aux contrats OpenAPI : Le statut du dépôt

Le README prétend que des benchmarks indépendants de TechEmpower montrent que les applications FastAPI tournant sous Uvicorn sont parmi les frameworks Python les plus rapides disponibles, seulement en dessous de Starlette et Uvicorn eux-mêmes. Il mentionne également que vous pouvez déployer sur n'importe quel fournisseur de cloud, avec un déploiement optionnel en une commande vers FastAPI Cloud, construit par la même équipe. La licence est MIT ; l'extrait accorde la permission d'utiliser, copier, modifier, fusionner, publier, distribuer, sous-licencier et vendre des copies, et indique que le logiciel est fourni 'tel quel' sans garantie d'aucune sorte.

Vérifier FastAPI, des indications de type aux contrats OpenAPI

Créer main.py avec /items/{item_id}, lancer uv run fastapi dev, puis comparer la validation, /docs et /redoc après ajout du modèle PUT décrit dans le README. Cette vérification reste attachée aux chemins, paramètres et commandes cités par le projet; elle permet de distinguer ce que le dépôt montre de ce que son README ne précise pas.

Conclusion éditoriale

FastAPI, des indications de type aux contrats OpenAPI convient aux lecteurs dont le besoin correspond aux fichiers et au flux documentés. Il ne convient pas à une adoption à l aveugle : commencez par créer main.py avec /items/{item_id}, lancer uv run fastapi dev, puis comparer la validation, /docs et /redoc après ajout du modèle put décrit dans le readme.

Sources officielles

  1. Official documentation
  2. Official README
  3. Project repository
  4. Release notes
Notes de la communauté

Notes de la communauté