FastAPI is a modern, fast (high-performance), web framework for building APIs with Python 3.6+ based on standard Python type hints.
FastAPI est un framework web moderne et rapide (haute performance) pour la création d'API avec Python 3.7+, basé sur les annotations de type standard de Python.
The key features are:
Les principales fonctionnalités sont :
* **Fast**: Very high performance, on par with **NodeJS** and **Go** (thanks to Starlette and Pydantic). [One of the fastest Python frameworks available](#performance).
* **Rapidité** : De très hautes performances, au niveau de **NodeJS** et **Go** (grâce à Starlette et Pydantic). [L'un des frameworks Python les plus rapides](#performance).
* **Rapide à coder** : Augmente la vitesse de développement des fonctionnalités d'environ 200 % à 300 %. *
* **Moins de bugs** : Réduit d'environ 40 % les erreurs induites par le développeur. *
* **Intuitif** : Excellente compatibilité avec les IDE. <abbrtitle="également connu sous le nom d'auto-complétion, autocomplétion, IntelliSense">Complétion</abbr> complète. Moins de temps passé à déboguer.
* **Facile** : Conçu pour être facile à utiliser et à apprendre. Moins de temps passé à lire la documentation.
* **Concis** : Diminue la duplication de code. De nombreuses fonctionnalités liées à la déclaration de chaque paramètre. Moins de bugs.
* **Robuste** : Obtenez un code prêt pour la production. Avec une documentation interactive automatique.
* **Basé sur des normes** : Basé sur (et entièrement compatible avec) les standards ouverts pour les APIs : <ahref="https://github.com/OAI/OpenAPI-Specification"class="external-link"target="_blank">OpenAPI</a> (précédemment connu sous le nom de Swagger) et <ahref="https://json-schema.org/"class="external-link"target="_blank">JSON Schema</a>.
* **Fast to code**: Increase the speed to develop features by about 200% to 300%. *
* **Fewer bugs**: Reduce about 40% of human (developer) induced errors. *
* **Intuitive**: Great editor support. <abbrtitle="also known as auto-complete, autocompletion, IntelliSense">Completion</abbr> everywhere. Less time debugging.
* **Easy**: Designed to be easy to use and learn. Less time reading docs.
* **Short**: Minimize code duplication. Multiple features from each parameter declaration. Fewer bugs.
* **Robust**: Get production-ready code. With automatic interactive documentation.
* **Standards-based**: Based on (and fully compatible with) the open standards for APIs: <ahref="https://github.com/OAI/OpenAPI-Specification"class="external-link"target="_blank">OpenAPI</a> (previously known as Swagger) and <ahref="https://json-schema.org/"class="external-link"target="_blank">JSON Schema</a>.
<small>* estimation based on tests on an internal development team, building production applications.</small>
<small>* estimation basée sur des tests d'une équipe de développement interne, construisant des applications de production.</small>
## Sponsors
@ -63,60 +61,66 @@ The key features are:
## Opinions
"_[...] I'm using **FastAPI** a ton these days. [...] I'm actually planning to use it for all of my team's **ML services at Microsoft**. Some of them are getting integrated into the core **Windows** product and some **Office** products._"
"_[...] J'utilise beaucoup **FastAPI** ces derniers temps. [...] Je prévois de l'utiliser dans mon équipe pour tous les **services de ML chez Microsoft**. Certains d'entre eux seront intégrés dans le coeur de **Windows** et dans certains produits **Office**._"
"_We adopted the **FastAPI** library to spawn a **REST** server that can be queried to obtain **predictions**. [for Ludwig]_"
"_Nous avons adopté la bibliothèque **FastAPI** pour créer un serveur **REST** qui peut être interrogé pour obtenir des **prédictions**. [pour Ludwig]_"
<divstyle="text-align: right; margin-right: 10%;">Piero Molino, Yaroslav Dudin, and Sai Sumanth Miryala - <strong>Uber</strong><ahref="https://eng.uber.com/ludwig-v0-2/"target="_blank"><small>(ref)</small></a></div>
<divstyle="text-align: right; margin-right: 10%;">Piero Molino, Yaroslav Dudin et Sai Sumanth Miryala - <strong>Uber</strong><ahref="https://eng.uber.com/ludwig-v0-2/"target="_blank"><small>(ref)</small></a></div>
---
"_**Netflix** is pleased to announce the open-source release of our **crisis management** orchestration framework: **Dispatch**! [built with**FastAPI**]_"
"_**Netflix** a le plaisir d'annoncer la sortie en open-source de notre framework d'orchestration de **gestion de crise** : **Dispatch** ! [construit avec**FastAPI**]_"
"_Honestly, what you've built looks super solid and polished. In many ways, it's what I wanted **Hug** to be - it's really inspiring to see someone build that._"
"_Honnêtement, ce que vous avez construit a l'air super solide et élégant. A bien des égards, c'est comme ça que je voulais que **Hug** soit - c'est vraiment inspirant de voir quelqu'un construire ça._"
<divstyle="text-align: right; margin-right: 10%;">Timothy Crosley - <strong> Créateur de <ahref="https://www.hug.rest/"target="_blank">Hug</a></strong><ahref="https://news.ycombinator.com/item?id=19455465"target="_blank"><small>(ref)</small></a></div>
---
"_If you're looking to learn one **modern framework** for building REST APIs, check out **FastAPI** [...] It's fast, easy to use and easy to learn [...]_"
"_Si vous cherchez à apprendre un **framework moderne** pour créer des APIs REST, regardez **FastAPI** [...] C'est rapide, facile à utiliser et à apprendre [...]_"
"_Nous sommes passés à **FastAPI** pour nos **APIs** [...] Je pense que vous l'aimerez [...]_"
<divstyle="text-align: right; margin-right: 10%;">Ines Montani - Matthew Honnibal - <strong>Fondateurs de <ahref="https://explosion.ai"target="_blank">Explosion AI</a> - Créateurs de <ahref="https://spacy.io"target="_blank">spaCy</a></strong><ahref="https://twitter.com/_inesmontani/status/1144173225322143744"target="_blank"><small>(ref)</small></a> - <ahref="https://twitter.com/honnibal/status/1144031421859655680"target="_blank"><small>(ref)</small></a></div>
---
"_We've switched over to **FastAPI** for our **APIs** [...] I think you'll like it [...]_"
"_Si quelqu'un cherche à construire une API Python de production, je recommande vivement **FastAPI**. Il est **bien conçu**, **simple à utiliser** et **très évolutif**. Il est devenu un **composant clé** dans notre stratégie de développement API first et il est à l'origine de nombreux automatismes et services tels que notre ingénieur virtuel TAC._"
If you are building a<abbrtitle="Command Line Interface">CLI</abbr>app to be used in the terminal instead of a web API, check out<ahref="https://typer.tiangolo.com/"class="external-link"target="_blank">**Typer**</a>.
Si vous souhaitez construire une application<abbrtitle="Command Line Interface">CLI</abbr>utilisable dans un terminal au lieu d'une API web, regardez<ahref="https://typer.tiangolo.com/"class="external-link"target="_blank">**Typer**</a>.
**Typer** is FastAPI's little sibling. And it's intended to be the **FastAPI of CLIs**. ⌨️ 🚀
**Typer** est le petit frère de FastAPI. Et il est destiné à être le **FastAPI des <abbr title="Command Line Interface">CLI</abbr>**. ⌨️ 🚀
## Requirements
## Prérequis
Python 3.7+
FastAPI stands on the shoulders of giants:
FastAPI repose sur les épaules de géants :
* <ahref="https://www.starlette.io/"class="external-link"target="_blank">Starlette</a>for the web parts.
* <ahref="https://pydantic-docs.helpmanual.io/"class="external-link"target="_blank">Pydantic</a>for the data parts.
* <ahref="https://www.starlette.io/"class="external-link"target="_blank">Starlette</a>pour les parties web.
* <ahref="https://pydantic-docs.helpmanual.io/"class="external-link"target="_blank">Pydantic</a>pour les parties données.
## Installation
@ -130,7 +134,7 @@ $ pip install fastapi
</div>
You will also need an ASGI server, for production such as<ahref="https://www.uvicorn.org"class="external-link"target="_blank">Uvicorn</a> or<ahref="https://gitlab.com/pgjones/hypercorn"class="external-link"target="_blank">Hypercorn</a>.
Vous aurez également besoin d'un serveur ASGI pour la production tel que<ahref="https://www.uvicorn.org"class="external-link"target="_blank">Uvicorn</a> ou<ahref="https://github.com/pgjones/hypercorn"class="external-link"target="_blank">Hypercorn</a>.
If you don't know, check the _"In a hurry?"_ section about<ahref="https://fastapi.tiangolo.com/async/#in-a-hurry"target="_blank">`async` and `await` in the docs</a>.
Si vous n'êtes pas familier avec cette notion, consultez la section _"Vous êtes pressés ?"_ à propos de<ahref="https://fastapi.tiangolo.com/fr/async/#vous-etes-presses"target="_blank">`async` et `await` dans la documentation</a>.
<summary>About the command<code>uvicorn main:app --reload</code>...</summary>
<summary>À propos de la commande<code>uvicorn main:app --reload</code>...</summary>
The command `uvicorn main:app` refers to:
La commande `uvicorn main:app` fait référence à :
* `main`: the file `main.py` (the Python "module").
* `app`: the object created inside of `main.py` with the line `app = FastAPI()`.
* `--reload`: make the server restart after code changes. Only do this for development.
* `main` : le fichier `main.py` (le "module" Python).
* `app` : l'objet créé à l'intérieur de `main.py` avec la ligne `app = FastAPI()`.
* `--reload` : fait redémarrer le serveur après des changements de code. À n'utiliser que pour le développement.
</details>
### Check it
### Vérifiez
Open your browser at<ahref="http://127.0.0.1:8000/items/5?q=somequery"class="external-link"target="_blank">http://127.0.0.1:8000/items/5?q=somequery</a>.
Ouvrez votre navigateur à l'adresse<ahref="http://127.0.0.1:8000/items/5?q=somequery"class="external-link"target="_blank">http://127.0.0.1:8000/items/5?q=somequery</a>.
You will see the JSON response as:
Vous obtenez alors cette réponse <abbrtitle="JavaScript Object Notation">JSON</abbr>:
```JSON
{"item_id": 5, "q": "somequery"}
```
You already created an API that:
Vous venez de créer une API qui :
* Receives HTTP requests in the _paths_`/` and`/items/{item_id}`.
* Both _paths_ take `GET`<em>operations</em> (also known as HTTP _methods_).
* The _path_`/items/{item_id}` has a _path parameter_`item_id` that should be an `int`.
* The _path_`/items/{item_id}` has an optional `str`_query parameter_`q`.
* Reçoit les requêtes HTTP pour les _chemins_`/` et`/items/{item_id}`.
* Les deux _chemins_ acceptent des <em>opérations</em>`GET` (également connu sous le nom de _méthodes_ HTTP).
* Le _chemin_`/items/{item_id}` a un _<abbr title="en anglais : path parameter">paramètre</abbr>_`item_id` qui doit être un `int`.
* Le _chemin_`/items/{item_id}` a un _<abbr title="en anglais : query param">paramètre de requête</abbr>_ optionnel `q` de type `str`.
### Interactive API docs
### Documentation API interactive
Now go to<ahref="http://127.0.0.1:8000/docs"class="external-link"target="_blank">http://127.0.0.1:8000/docs</a>.
You will see the automatic interactive API documentation (provided by<ahref="https://github.com/swagger-api/swagger-ui"class="external-link"target="_blank">Swagger UI</a>):
Vous verrez la documentation interactive automatique de l'API (fournie par<ahref="https://github.com/swagger-api/swagger-ui"class="external-link"target="_blank">Swagger UI</a>):
And now, go to<ahref="http://127.0.0.1:8000/redoc"class="external-link"target="_blank">http://127.0.0.1:8000/redoc</a>.
Et maintenant, rendez-vous sur<ahref="http://127.0.0.1:8000/redoc"class="external-link"target="_blank">http://127.0.0.1:8000/redoc</a>.
You will see the alternative automatic documentation (provided by<ahref="https://github.com/Rebilly/ReDoc"class="external-link"target="_blank">ReDoc</a>):
Vous verrez la documentation interactive automatique de l'API (fournie par<ahref="https://github.com/Rebilly/ReDoc"class="external-link"target="_blank">ReDoc</a>):
* Then click on the "Execute" button, the user interface will communicate with your API, send the parameters, get the results and show them on the screen:
* Cliquez ensuite sur le bouton "Execute", l'interface utilisateur communiquera avec votre API, enverra les paramètres, obtiendra les résultats et les affichera à l'écran :
In summary, you declare **once** the types of parameters, body, etc. as function parameters.
En résumé, vous déclarez **une fois** les types de paramètres, <abbrtitle="en anglais : body">le corps</abbr> de la requête, etc. en tant que paramètres de fonction.
You do that with standard modern Python types.
Vous faites cela avec les types Python standard modernes.
You don't have to learn a new syntax, the methods or classes of a specific library, etc.
Vous n'avez pas à apprendre une nouvelle syntaxe, les méthodes ou les classes d'une bibliothèque spécifique, etc.
Just standard **Python 3.6+**.
Juste du **Python 3.7+** standard.
For example, for an `int`:
Par exemple, pour un `int`:
```Python
item_id: int
```
or for a more complex `Item` model:
ou pour un modèle `Item` plus complexe :
```Python
item: Item
```
...and with that single declaration you get:
* Editor support, including:
* Completion.
* Type checks.
* Validation of data:
* Automatic and clear errors when the data is invalid.
* Validation even for deeply nested JSON objects.
* <abbrtitle="also known as: serialization, parsing, marshalling">Conversion</abbr>of input data: coming from the network to Python data and types. Reading from:
* JSON.
* Path parameters.
* Query parameters.
* Cookies.
* Headers.
* Forms.
* Files.
* <abbrtitle="also known as: serialization, parsing, marshalling">Conversion</abbr>of output data: converting from Python data and types to network data (as JSON):
* Automatic interactive API documentation, including 2 alternative user interfaces:
... et avec cette déclaration unique, vous obtenez :
* Une assistance dans votre IDE, notamment :
* la complétion.
* la vérification des types.
* La validation des données :
* des erreurs automatiques et claires lorsque les données ne sont pas valides.
* une validation même pour les objets <abbrtitle="JavaScript Object Notation">JSON</abbr> profondément imbriqués.
* <abbrtitle="aussi connu sous le nom de : serialization, parsing, marshalling">Une conversion</abbr>des données d'entrée : venant du réseau et allant vers les données et types de Python, permettant de lire :
* le <abbrtitle="JavaScript Object Notation">JSON</abbr>.
* <abbrtitle="en anglais : path parameters">les paramètres du chemin</abbr>.
* <abbrtitle="en anglais : query parameters">les paramètres de la requête</abbr>.
* <abbrtitle="aussi connu sous le nom de : serialization, parsing, marshalling">La conversion</abbr>des données de sortie : conversion des données et types Python en données réseau (au format <abbrtitle="JavaScript Object Notation">JSON</abbr>), permettant de convertir :
* les types Python (`str`, `int`, `float`, `bool`, `list`, etc).
* les objets `datetime`.
* les objets `UUID`.
* les modèles de base de données.
* ... et beaucoup plus.
* La documentation API interactive automatique, avec 2 interfaces utilisateur au choix :
* Swagger UI.
* ReDoc.
---
Coming back to the previous code example, **FastAPI** will:
* Validate that there is an `item_id` in the path for `GET` and `PUT` requests.
* Validate that the `item_id` is of type `int` for `GET` and `PUT` requests.
* If it is not, the client will see a useful, clear error.
* Check if there is an optional query parameter named `q` (as in `http://127.0.0.1:8000/items/foo?q=somequery`) for `GET` requests.
* As the `q` parameter is declared with `= None`, it is optional.
* Without the `None` it would be required (as is the body in the case with`PUT`).
* For `PUT` requests to `/items/{item_id}`, Read the body as JSON:
* Check that it has a required attribute `name` that should be a`str`.
* Check that it has a required attribute `price` that has to be a`float`.
* Check that it has an optional attribute `is_offer`, that should be a `bool`, if present.
* All this would also work for deeply nested JSON objects.
* Convert from and to JSON automatically.
* Document everything with OpenAPI, that can be used by:
* Interactive documentation systems.
* Automatic client code generation systems, for many languages.
* Provide 2 interactive documentation web interfaces directly.
Pour revenir à l'exemple de code précédent, **FastAPI** permet de :
* Valider que `item_id` existe dans le chemin des requêtes `GET` et `PUT`.
* Valider que `item_id` est de type `int` pour les requêtes `GET` et `PUT`.
* Si ce n'est pas le cas, le client voit une erreur utile et claire.
* Vérifier qu'il existe un paramètre de requête facultatif nommé `q` (comme dans `http://127.0.0.1:8000/items/foo?q=somequery`) pour les requêtes `GET`.
* Puisque le paramètre `q` est déclaré avec `= None`, il est facultatif.
* Sans le `None`, il serait nécessaire (comme l'est <abbrtitle="en anglais : body">le corps</abbr> de la requête dans le cas du`PUT`).
* Pour les requêtes `PUT` vers `/items/{item_id}`, de lire <abbrtitle="en anglais : body">le corps</abbr> en <abbrtitle="JavaScript Object Notation">JSON</abbr>:
* Vérifier qu'il a un attribut obligatoire `name` qui devrait être un`str`.
* Vérifier qu'il a un attribut obligatoire `prix` qui doit être un`float`.
* Vérifier qu'il a un attribut facultatif `is_offer`, qui devrait être un `bool`, s'il est présent.
* Tout cela fonctionnerait également pour les objets <abbrtitle="JavaScript Object Notation">JSON</abbr> profondément imbriqués.
* Convertir de et vers <abbrtitle="JavaScript Object Notation">JSON</abbr> automatiquement.
* Documenter tout avec OpenAPI, qui peut être utilisé par :
* Les systèmes de documentation interactifs.
* Les systèmes de génération automatique de code client, pour de nombreuses langues.
* Fournir directement 2 interfaces web de documentation interactive.
---
We just scratched the surface, but you already get the idea of how it all works.
Nous n'avons fait qu'effleurer la surface, mais vous avez déjà une idée de la façon dont tout cela fonctionne.
For a more complete example including more features, see the <ahref="https://fastapi.tiangolo.com/tutorial/">Tutorial - User Guide</a>.
Pour un exemple plus complet comprenant plus de fonctionnalités, voir le <ahref="https://fastapi.tiangolo.com/fr/tutorial/">Tutoriel - Guide utilisateur</a>.
**Spoiler alert**: the tutorial - user guide includes:
**Spoiler alert** : le tutoriel - guide utilisateur inclut :
* Declaration of **parameters** from other different places as: **headers**, **cookies**, **form fields** and **files**.
* How to set **validation constraints** as `maximum_length` or `regex`.
* A very powerful and easy to use **<abbrtitle="also known as components, resources, providers, services, injectables">Dependency Injection</abbr>** system.
* Security and authentication, including support for **OAuth2** with **JWT tokens** and **HTTP Basic** auth.
* More advanced (but equally easy) techniques for declaring **deeply nested JSON models** (thanks to Pydantic).
* Many extra features (thanks to Starlette) as:
* Déclaration de **paramètres** provenant d'autres endroits différents comme : **<abbrtitle="en anglais : headers">en-têtes</abbr>.**, **cookies**, **champs de formulaire** et **fichiers**.
* L'utilisation de **contraintes de validation** comme `maximum_length` ou `regex`.
* Un **<abbrtitle="aussi connu sous le nom de composants, ressources, fournisseurs, services, injectables">systéme d'injection de dépendance </abbr>** très puissant et facile à utiliser .
* Sécurité et authentification, y compris la prise en charge de **OAuth2** avec les **<abbrtitle="en anglais : JWT tokens">jetons <abbrtitle="JSON Web Tokens">JWT</abbr></abbr>** et l'authentification **HTTP Basic**.
* Des techniques plus avancées (mais tout aussi faciles) pour déclarer les **modèles <abbr title="JavaScript Object Notation">JSON</abbr> profondément imbriqués** (grâce à Pydantic).
* Intégration de **GraphQL** avec <ahref="https://strawberry.rocks"class="external-link"target="_blank">Strawberry</a> et d'autres bibliothèques.
* D'obtenir de nombreuses fonctionnalités supplémentaires (grâce à Starlette) comme :
* **WebSockets**
* **GraphQL**
* extremely easy tests based on HTTPX and `pytest`
* **CORS**
* de tester le code très facilement avec `requests` et `pytest`
Independent TechEmpower benchmarks show **FastAPI** applications running under Uvicorn as<ahref="https://www.techempower.com/benchmarks/#section=test&runid=7464e520-0dc2-473d-bd34-dbdfd7e85911&hw=ph&test=query&l=zijzen-7"class="external-link"target="_blank">one of the fastest Python frameworks available</a>, only below Starlette and Uvicorn themselves (used internally by FastAPI). (*)
Les benchmarks TechEmpower indépendants montrent que les applications **FastAPI** s'exécutant sous Uvicorn sont<ahref="https://www.techempower.com/benchmarks/#section=test&runid=7464e520-0dc2-473d-bd34-dbdfd7e85911&hw=ph&test=query&l=zijzen-7"class="external-link"target="_blank"> parmi les frameworks existants en Python les plus rapides </a>, juste derrière Starlette et Uvicorn (utilisés en interne par FastAPI). (*)
To understand more about it, see the section <ahref="https://fastapi.tiangolo.com/benchmarks/"class="internal-link"target="_blank">Benchmarks</a>.
Pour en savoir plus, consultez la section <ahref="https://fastapi.tiangolo.com/fr/benchmarks/"class="internal-link"target="_blank">Benchmarks</a>.
## Optional Dependencies
## Dépendances facultatives
Used by Pydantic:
Utilisées par Pydantic:
* <ahref="https://github.com/esnme/ultrajson"target="_blank"><code>ujson</code></a> - for faster JSON<abbrtitle="converting the string that comes from an HTTP request into Python data">"parsing"</abbr>.
* <ahref="https://github.com/JoshData/python-email-validator"target="_blank"><code>email_validator</code></a> - for email validation.
* <ahref="https://github.com/esnme/ultrajson"target="_blank"><code>ujson</code></a> - pour un<abbrtitle="convertit la chaine de caractère d'une requête HTTP en donnée Python">"décodage" <abbrtitle="JavaScript Object Notation">JSON</abbr></abbr> plus rapide.
* <ahref="https://github.com/JoshData/python-email-validator"target="_blank"><code>email_validator</code></a> - pour la validation des adresses email.
Used by Starlette:
Utilisées par Starlette :
* <ahref="https://www.python-httpx.org"target="_blank"><code>HTTPX</code></a> - Required if you want to use the `TestClient`.
* <ahref="https://jinja.palletsprojects.com"target="_blank"><code>jinja2</code></a> - Required if you want to use the default template configuration.
* <ahref="https://andrew-d.github.io/python-multipart/"target="_blank"><code>python-multipart</code></a> - Required if you want to support form <abbrtitle="converting the string that comes from an HTTP request into Python data">"parsing"</abbr>, with `request.form()`.
* <ahref="https://pythonhosted.org/itsdangerous/"target="_blank"><code>itsdangerous</code></a> - Required for `SessionMiddleware` support.
* <ahref="https://pyyaml.org/wiki/PyYAMLDocumentation"target="_blank"><code>pyyaml</code></a> - Required for Starlette's `SchemaGenerator` support (you probably don't need it with FastAPI).
* <ahref="https://graphene-python.org/"target="_blank"><code>graphene</code></a> - Required for `GraphQLApp` support.
* <ahref="https://github.com/esnme/ultrajson"target="_blank"><code>ujson</code></a> - Required if you want to use `UJSONResponse`.
* <ahref="https://requests.readthedocs.io"target="_blank"><code>requests</code></a> - Obligatoire si vous souhaitez utiliser `TestClient`.
* <ahref="https://jinja.palletsprojects.com"target="_blank"><code>jinja2</code></a> - Obligatoire si vous souhaitez utiliser la configuration de template par defaut.
* <ahref="https://andrew-d.github.io/python-multipart/"target="_blank"><code>python-multipart</code></a> - Obligatoire si vous souhaitez supporter le <abbrtitle="convertit la chaine de caractère d'une requête HTTP en donnée Python">"décodage"</abbr> de formulaire avec `request.form()`.
* <ahref="https://pythonhosted.org/itsdangerous/"target="_blank"><code>itsdangerous</code></a> - Obligatoire pour la prise en charge de `SessionMiddleware`.
* <ahref="https://pyyaml.org/wiki/PyYAMLDocumentation"target="_blank"><code>pyyaml</code></a> - Obligatoire pour le support `SchemaGenerator` de Starlette (vous n'en avez probablement pas besoin avec FastAPI).
* <ahref="https://github.com/esnme/ultrajson"target="_blank"><code>ujson</code></a> - Obligatoire si vous souhaitez utiliser `UJSONResponse`.
Used by FastAPI / Starlette:
Utilisées par FastAPI / Starlette :
* <ahref="https://www.uvicorn.org"target="_blank"><code>uvicorn</code></a> - for the server that loads and serves your application.
* <ahref="https://github.com/ijl/orjson"target="_blank"><code>orjson</code></a> - Required if you want to use`ORJSONResponse`.
* <ahref="https://www.uvicorn.org"target="_blank"><code>uvicorn</code></a> - Pour le serveur qui charge et sert votre application.
* <ahref="https://github.com/ijl/orjson"target="_blank"><code>orjson</code></a> - Obligatoire si vous voulez utiliser`ORJSONResponse`.
You can install all of these with`pip install fastapi[all]`.
Vous pouvez tout installer avec`pip install fastapi[all]`.
## License
## Licence
This project is licensed under the terms of the MIT license.
Ce projet est soumis aux termes de la licence MIT.