Files
fastapi/docs/ru/docs/advanced/sub-applications.md
Motov Yurii 55a9eee13a 🌐 Update translations for ru (update-outdated) (#14909)
* Update all

* Reflect latest changes in `docs/en/docs/tutorial/security/oauth2-jwt.md`
2026-02-12 20:57:34 +01:00

4.8 KiB
Raw Blame History

Подприложения — Mounts (монтирование)

Если вам нужны два независимых приложения FastAPI, каждое со своим собственным OpenAPI и собственными интерфейсами документации, вы можете иметь основное приложение и «смонтировать» одно (или несколько) подприложений.

Монтирование приложения FastAPI

«Монтирование» означает добавление полностью независимого приложения по конкретному пути; далее оно будет обрабатывать всё под этим путём, используя объявленные в подприложении операции пути.

Приложение верхнего уровня

Сначала создайте основное, верхнего уровня, приложение FastAPI и его операции пути:

{* ../../docs_src/sub_applications/tutorial001_py310.py hl[3, 6:8] *}

Подприложение

Затем создайте подприложение и его операции пути.

Это подприложение — обычное стандартное приложение FastAPI, но именно оно будет «смонтировано»:

{* ../../docs_src/sub_applications/tutorial001_py310.py hl[11, 14:16] *}

Смонтируйте подприложение

В вашем приложении верхнего уровня, app, смонтируйте подприложение subapi.

В этом случае оно будет смонтировано по пути /subapi:

{* ../../docs_src/sub_applications/tutorial001_py310.py hl[11, 19] *}

Проверьте автоматическую документацию API

Теперь запустите команду fastapi с вашим файлом:

$ fastapi dev main.py

<span style="color: green;">INFO</span>:     Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)

И откройте документацию по адресу http://127.0.0.1:8000/docs.

Вы увидите автоматическую документацию API для основного приложения, включающую только его собственные операции пути:

Затем откройте документацию для подприложения по адресу http://127.0.0.1:8000/subapi/docs.

Вы увидите автоматическую документацию API для подприложения, включающую только его собственные операции пути, все под корректным префиксом подпути /subapi:

Если вы попробуете взаимодействовать с любым из двух интерфейсов, всё будет работать корректно, потому что браузер сможет обращаться к каждому конкретному приложению и подприложению.

Технические подробности: root_path

Когда вы монтируете подприложение, как описано выше, FastAPI позаботится о передаче пути монтирования для подприложения, используя механизм из спецификации ASGI под названием root_path.

Таким образом подприложение будет знать, что для интерфейса документации нужно использовать этот префикс пути.

У подприложения также могут быть свои собственные смонтированные подприложения, и всё будет работать корректно, потому что FastAPI автоматически обрабатывает все эти root_path.

Вы узнаете больше о root_path и о том, как использовать его явно, в разделе За прокси{.internal-link target=_blank}.