Tutoriel FastAPI

FastAPI est un framework web Python moderne, rapide (haute performance) pour la création d'API, spécifiquement conçu pour construire des API RESTful.

FastAPI utilise Python 3.8+ et est construit sur les indications de type standard de Python, en utilisant Starlette et Pydantic, permettant la génération automatique de documentation d'API et la validation des données.


À qui s'adresse ce tutoriel ?

Ce tutoriel s'adresse aux développeurs ayant des bases en Python. Si vous comprenez déjà la syntaxe de base et les annotations de type de Python, vous pourrez démarrer rapidement avec FastAPI.


Ce que vous devez savoir avant de suivre ce tutoriel

Avant d'apprendre ce tutoriel, vous devez comprendre quelques connaissances de base du Web etTutoriel de base Python 3.xSi vous n'êtes pas familier avec les méthodes de requête HTTP (GET, POST, etc.), il est recommandé de lire d'abord.Tutoriel HTTP。


Fonctionnalités de FastAPI

FastAPI se démarque parmi les frameworks web Python, principalement en raison des fonctionnalités suivantes :

FonctionnalitésDescription
Haute performanceBasé sur Starlette et Pydantic, avec des performances comparables à NodeJS et Go, il fait partie des frameworks Python les plus rapides.
Développement rapideLa vitesse de développement augmente d'environ 200%-300%, avec des déclarations de type standard permettant la validation des données et la génération de documentation.
Réduire les erreursRéduit les erreurs humaines d'environ 40%, le système de types détectant automatiquement les problèmes courants.
Documentation automatiqueGénère automatiquement une documentation API interactive (Swagger UI et ReDoc), éliminant ainsi le besoin de maintenance manuelle.
Sûreté de typageBasé sur les indications de type standard de Python, offrant une auto-complétion complète et une vérification des erreurs dans les éditeurs.
Prise en charge de l'asynchroneSupport natif pour async/await, gérant efficacement les tâches intensives en E/S.

Scénarios d'application de FastAPI

ScénariosDescription
Création de backends d'APIUtilisé pour créer des API RESTful, prenant en charge les applications web avec frontend et backend séparés.
Architecture de microservicesLéger et efficace, adapté comme framework backend pour les microservices.
API de traitement de donnéesAdapté aux services de traitement de données qui reçoivent et renvoient des données JSON.
Communication en temps réelPrend en charge WebSocket, adapté aux scénarios de communication en temps réel.
Services d'apprentissage automatiquePeut encapsuler des modèles entraînés sous forme d'API, ce qui facilite les appels depuis les frontends et d'autres services.

Stack technique de FastAPI

FastAPI est construit au-dessus de deux bibliothèques principales :

ComposantsFonctionDescription
StarletteCouche de framework webFournit des fonctionnalités web de base telles que le routage, les middlewares et WebSocket ; FastAPI hérite directement de Starlette.
PydanticCouche de validation des donnéesEffectue la validation des données, la sérialisation et la génération de documentation à partir des annotations de type Python.
UvicornServeur ASGIUn serveur ASGI hautes performances basé sur uvloop et httptools, utilisé pour exécuter des applications FastAPI
FastAPI est une sous-classe de Starlette, vous pouvez donc utiliser toutes les fonctionnalités de Starlette. En même temps, FastAPI est entièrement compatible avec Pydantic, y compris les bibliothèques externes basées sur des ORM Pydantic (telles que SQLModel).

Pourquoi choisir FastAPI ?

Dimension de comparaisonFastAPIFlaskDjango
PerformanceÉlevé (async, ASGI)Moyen (sync, WSGI)Moyen (sync, WSGI)
Documentation automatiqueIntégré (Swagger UI + ReDoc)Nécessite des extensions tiercesNécessite des extensions tierces
Validation de typeIntégré (Pydantic)Implémentation manuelle requiseImplémentation manuelle requise
Prise en charge de l'asynchronePrise en charge nativeà étendrePrise en charge de 3.1+
Courbe d'apprentissageFaibleFaiblePlus élevé
Échelle applicablePetites et moyennes tailles / microservicespetite et moyenne tailleGrande / Full-stack

Liens connexes

RessourcesAdresse
Documentation officielle de FastAPIhttps://fastapi.tiangolo.com/zh/
Code source de FastAPIhttps://github.com/tiangolo/fastapi
Documentation Starlettehttps://www.starlette.dev/
Documentation Pydantichttps://docs.pydantic.dev/
autres extensions