4.7 KiB
Підзастосунки - монтування
Якщо вам потрібно мати два незалежні застосунки 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}.