FastAPI est un framework Web hautes performances et facile à utiliser pour créer des API avec Python 3.6+ basé sur des astuces de type Python standard. Il a été conçu pour être hautement évolutif et facile à utiliser, tout en fournissant un ensemble robuste de fonctionnalités qui en font un excellent choix pour le développement Web moderne.
La genèse de FastAPI
FastAPI a été créé par Sebastián Ramírez et publié pour la première fois en décembre 2018. La principale motivation pour développer FastAPI était de créer un framework Web à la fois très efficace et convivial, tirant parti des nouvelles fonctionnalités de Python, en particulier des astuces de type Python 3.6+. Les premières mentions de FastAPI sont apparues sur GitHub, où il a depuis gagné en popularité en raison de ses performances, de sa facilité d'utilisation et de son excellent support communautaire.
Dans le monde de FastAPI
FastAPI exploite le concept d'annotations de type et le puissant framework Starlette pour les composants WebPart. Il utilise également Pydantic pour le traitement des données. Ces deux composants fondamentaux, combinés aux fonctionnalités uniques de FastAPI, en font un outil puissant pour le développement Web.
Contrairement à certains autres frameworks Web, FastAPI est conçu pour être asynchrone, ce qui lui permet de gérer plusieurs requêtes simultanément. Cette asynchronicité est obtenue à l'aide des mots-clés async et wait de Python, faisant de FastAPI un excellent choix pour créer des applications et des microservices en temps réel.
Principales fonctionnalités de FastAPI
FastAPI est livré avec un large éventail de fonctionnalités qui le distinguent des autres frameworks Web :
- Rapide: C'est l'un des frameworks les plus rapides disponibles pour Python, juste derrière NodeJS et Go en termes de vitesse.
- Facile: Il est très convivial pour les développeurs, nécessitant moins de code passe-partout, ce qui facilite l'apprentissage pour les nouveaux développeurs.
- Intuitif: FastAPI tire parti des indications de type de Python pour fournir une validation, une sérialisation et une documentation automatiques des données.
- Basé sur des normes: FastAPI est basé sur (et entièrement compatible avec) les standards ouverts pour les API : OpenAPI (anciennement connu sous le nom de Swagger) et JSON Schema.
- Robuste: Il prend en charge la gestion de l'authentification OAuth2, les jetons Web JSON, HTTP/2 et WebSockets.
- Évolutif: FastAPI prend en charge la gestion des requêtes asynchrones, ce qui en fait un excellent choix pour gérer les connexions de longue durée et les mises à jour en temps réel.
Types d'applications FastAPI
Il n’existe pas de « types » spécifiques de FastAPI car il s’agit d’un framework et non d’une classification. Cependant, il peut être utilisé pour créer différents types d’applications Web :
- Apis: Il est principalement conçu pour créer des API robustes et évolutives.
- Des applications Web: Il peut également être utilisé pour créer des applications Web à part entière.
- Microservices: FastAPI est un excellent choix pour les microservices en raison de sa vitesse et de son évolutivité.
- Applications en temps réel: Grâce à sa prise en charge des WebSockets, il convient aux applications temps réel.
Cas d'utilisation pratiques et résolution de problèmes avec FastAPI
FastAPI a été largement adopté dans des secteurs allant de la fintech à la biotechnologie, pour des tâches telles que la création d'API RESTful, de serveurs de prédiction en temps réel, etc.
Un problème courant lorsque l’on travaille avec des API est la validation des données d’entrée. FastAPI résout ce problème en utilisant les astuces de type Python et la bibliothèque Pydantic, qui automatise la validation des données. Un autre problème courant concerne la gestion des tâches asynchrones. FastAPI, avec sa prise en charge intégrée de l'asyncio de Python, simplifie la gestion des tâches asynchrones.
FastAPI par rapport à d'autres frameworks
Fonctionnalité | API rapide | Ballon | Django |
---|---|---|---|
Vitesse | Très haut | Modéré | Modéré |
Courbe d'apprentissage | Faible | Faible | Haut |
La flexibilité | Haut | Haut | Modéré |
Évolutivité | Haut | Modéré | Haut |
Fonctionnalités intégrées | Haut | Modéré | Haut |
Prise en charge asynchrone | Oui | Non | Non |
L'avenir de FastAPI
L’avenir de FastAPI s’annonce prometteur. Comme il s'agit d'un projet open source, le nombre de contributeurs ne cesse de croître, ce qui signifie que de nouvelles fonctionnalités et améliorations peuvent être attendues. Alors que de plus en plus d'entreprises adoptent FastAPI pour leurs projets, on peut supposer qu'elle restera un acteur essentiel dans le monde des frameworks Web Python.
Les technologies émergentes telles que l'architecture sans serveur, la conteneurisation et les microservices sont également compatibles avec FastAPI. On s’attend donc à ce qu’elle s’adapte et se développe parallèlement à ces nouveaux paradigmes.
Serveurs proxy et FastAPI
Un serveur proxy est un serveur qui sert d'intermédiaire pour les requêtes des clients recherchant des ressources auprès d'autres serveurs. Il peut être utilisé en combinaison avec FastAPI pour fournir des couches supplémentaires de sécurité, d'équilibrage de charge et de mise en cache.
Par exemple, dans un cas d'utilisation typique, vous pourriez avoir une application FastAPI exécutée derrière un serveur proxy. Le serveur proxy peut gérer les demandes et les réponses entre le client et votre application FastAPI. Il peut mettre en cache les réponses de l'application FastAPI, réduisant ainsi la charge et améliorant les temps de réponse. De plus, un serveur proxy peut fournir des mesures de sécurité supplémentaires, telles que la limitation du débit ou le blocage d'adresses IP spécifiques.
Liens connexes
- Dépôt GitHub FastAPI : https://github.com/tiangolo/fastapi
- Documentation officielle de FastAPI : https://fastapi.tiangolo.com/
- Dépôt GitHub Starlette : https://github.com/encode/starlette
- Dépôt GitHub Pydantic : https://github.com/samuelcolvin/pydantic
- Initiative OpenAPI : https://www.openapis.org/
- Schéma JSON : https://json-schema.org/