C'est le framework Python le plus populaire et il bénéficie d'une grande confiance. Il est utilisé pour construire
des systèmes tel qu'Instagram.
@ -28,7 +28,7 @@ stockage.
Il a été créé pour générer le HTML en backend, pas pour créer des API consommées par un frontend moderne (comme React, Vue.js et Angular) ou par d'autres systèmes (comme les appareils <abbrtitle="Internet of Things - Internet des objets">IoT</abbr>) communiquant avec lui.
Django REST Framework a été conçu comme une boîte à outils flexible permettant de construire des API Web à partir de Django, afin d'améliorer ses capacités en matière d'API.
@ -49,7 +49,7 @@ Avoir une interface de documentation automatique de l'API.
Flask est un « micro‑framework », il ne comprend pas d'intégrations de bases de données ni beaucoup de choses qui sont fournies par défaut dans Django.
@ -73,7 +73,7 @@ Proposer un système de routage simple et facile à utiliser.
Ces deux-là ont été choisis parce qu'ils sont populaires et stables, mais en faisant une recherche rapide, vous pourriez trouver des dizaines d'alternatives supplémentaires pour OpenAPI (que vous pouvez utiliser avec **FastAPI**).
@ -147,7 +147,7 @@ Il y a plusieurs frameworks REST pour Flask, mais après avoir investi du temps
découvert que le développement de beaucoup d'entre eux sont suspendus ou abandonnés, avec plusieurs problèmes
L'une des principales fonctionnalités nécessaires aux systèmes API est la « <dfntitle="aussi appelé : marshalling, conversion">sérialisation</dfn> » des données, qui consiste à prendre les données du code (Python) et à
les convertir en quelque chose qui peut être envoyé sur le réseau. Par exemple, convertir un objet contenant des
@ -170,7 +170,7 @@ Utiliser du code pour définir des « schémas » qui fournissent automatiquemen
Une autre grande fonctionnalité requise par les API est l’<dfntitle="lecture et conversion en données Python">analyse</dfn> des données provenant des requêtes entrantes.
@ -192,7 +192,7 @@ Disposer d'une validation automatique des données des requêtes entrantes.
C'était l'un des premiers frameworks Python extrêmement rapides basés sur `asyncio`. Il a été conçu pour être très similaire à Flask.
/// note | Détails techniques
Il utilisait <ahref="https://github.com/MagicStack/uvloop"class="external-link"target="_blank">`uvloop`</a> au lieu du système par défaut de Python `asyncio`. C'est ce qui l'a rendu si rapide.
Il utilisait [`uvloop`](https://github.com/MagicStack/uvloop) au lieu du système par défaut de Python `asyncio`. C'est ce qui l'a rendu si rapide.
Il a clairement inspiré Uvicorn et Starlette, qui sont actuellement plus rapides que Sanic dans les benchmarks.
@ -298,7 +298,7 @@ C'est pourquoi **FastAPI** est basé sur Starlette, car il s'agit du framework l
Falcon est un autre framework Python haute performance, il est conçu pour être minimal, et est utilisé comme fondation pour d'autres frameworks comme Hug.
@ -318,7 +318,7 @@ Bien que dans FastAPI, il est facultatif, et est utilisé principalement pour d
Hug a été l'un des premiers frameworks à implémenter la déclaration des types de paramètres d'API en utilisant les annotations de type Python. C'était une excellente idée qui a inspiré d'autres outils à faire de même.
@ -363,7 +363,7 @@ Comme il est basé sur l'ancienne norme pour les frameworks web Python synchrone
/// info
Hug a été créé par Timothy Crosley, le créateur de <ahref="https://github.com/timothycrosley/isort"class="external-link"target="_blank">`isort`</a>, un excellent outil pour trier automatiquement les imports dans les fichiers Python.
Hug a été créé par Timothy Crosley, le créateur de [`isort`](https://github.com/timothycrosley/isort), un excellent outil pour trier automatiquement les imports dans les fichiers Python.
///
@ -378,7 +378,7 @@ Hug a inspiré **FastAPI** pour déclarer un paramètre `response` dans les fonc
Pydantic est une bibliothèque permettant de définir la validation, la sérialisation et la documentation des données (à l'aide de JSON Schema) en se basant sur les annotations de type Python.
@ -447,7 +447,7 @@ Gérer toute la validation des données, leur sérialisation et la documentation
Starlette est un framework/toolkit léger <dfntitle="La nouvelle norme pour créer des applications web Python asynchrones">ASGI</dfn>, qui est idéal pour construire des services asyncio performants.
@ -492,7 +492,7 @@ Ainsi, tout ce que vous pouvez faire avec Starlette, vous pouvez le faire direct
@ -32,7 +32,7 @@ Et une sous-classe d'`APIRoute` pour utiliser cette classe de requête personnal
/// tip | Astuce
Il s'agit d'un exemple simplifié pour montrer le fonctionnement ; si vous avez besoin de la prise en charge de Gzip, vous pouvez utiliser le [`GzipMiddleware`](../advanced/middleware.md#gzipmiddleware){.internal-link target=_blank} fourni.
Il s'agit d'un exemple simplifié pour montrer le fonctionnement ; si vous avez besoin de la prise en charge de Gzip, vous pouvez utiliser le [`GzipMiddleware`](../advanced/middleware.md#gzipmiddleware) fourni.
///
@ -82,7 +82,7 @@ Mais grâce à nos modifications dans `GzipRequest.body`, le corps de la requêt
/// tip | Astuce
Pour résoudre ce même problème, il est probablement beaucoup plus simple d'utiliser `body` dans un gestionnaire personnalisé pour `RequestValidationError` ([Gérer les erreurs](../tutorial/handling-errors.md#use-the-requestvalidationerror-body){.internal-link target=_blank}).
Pour résoudre ce même problème, il est probablement beaucoup plus simple d'utiliser `body` dans un gestionnaire personnalisé pour `RequestValidationError` ([Gérer les erreurs](../tutorial/handling-errors.md#use-the-requestvalidationerror-body)).
Mais cet exemple reste valable et montre comment interagir avec les composants internes.