You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

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}.