3.2 KiB
Sous-applications - Montage
Si vous avez besoin de deux applications FastAPI indépendantes, avec leur propre OpenAPI et leurs propres interfaces de la documentation, vous pouvez avoir une application principale et « monter » une (ou plusieurs) sous‑application(s).
Monter une application FastAPI
« Monter » signifie ajouter une application entièrement « indépendante » à un chemin spécifique, qui se chargera ensuite de tout gérer sous ce chemin, avec les chemins d'accès déclarés dans cette sous‑application.
Application de premier niveau
Créez d'abord l'application FastAPI principale (de premier niveau) et ses chemins d'accès :
{* ../../docs_src/sub_applications/tutorial001_py310.py hl[3, 6:8] *}
Sous-application
Ensuite, créez votre sous‑application et ses chemins d'accès.
Cette sous‑application est simplement une autre application FastAPI standard, mais c'est celle qui sera « montée » :
{* ../../docs_src/sub_applications/tutorial001_py310.py hl[11, 14:16] *}
Monter la sous-application
Dans votre application de premier niveau, app, montez la sous‑application, subapi.
Dans ce cas, elle sera montée au chemin /subapi :
{* ../../docs_src/sub_applications/tutorial001_py310.py hl[11, 19] *}
Vérifier la documentation API automatique
Exécutez maintenant la commande fastapi :
$ fastapi dev
<span style="color: green;">INFO</span>: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
Et ouvrez la documentation à http://127.0.0.1:8000/docs.
Vous verrez la documentation API automatique pour l'application principale, n'incluant que ses propres chemins d'accès :
Ensuite, ouvrez la documentation de la sous‑application à http://127.0.0.1:8000/subapi/docs.
Vous verrez la documentation API automatique pour la sous‑application, n'incluant que ses propres chemins d'accès, tous sous le préfixe de sous‑chemin correct /subapi :
Si vous essayez d'interagir avec l'une ou l'autre des deux interfaces, elles fonctionneront correctement, car le navigateur pourra communiquer avec chaque application ou sous‑application spécifique.
Détails techniques : root_path
Lorsque vous montez une sous‑application comme ci‑dessus, FastAPI se charge de communiquer le chemin de montage à la sous‑application au moyen d'un mécanisme de la spécification ASGI appelé root_path.
De cette manière, la sous‑application saura utiliser ce préfixe de chemin pour l'interface de documentation.
La sous‑application peut également avoir ses propres sous‑applications montées et tout fonctionnera correctement, car FastAPI gère automatiquement tous ces root_path.
Vous en apprendrez davantage sur root_path et sur la façon de l'utiliser explicitement dans la section Derrière un proxy.