РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
35 of 307 menu

Параметр root_path

Параметр root_path передаётся в конструктор класса FastAPI и задаёт префикс, под которым приложение доступно извне. Это нужно, когда FastAPI работает за обратным прокси, например за Nginx или Traefik, который монтирует приложение не в корень домена, а в подкаталог. Значение root_path учитывается при генерации схемы OpenAPI, при построении путей в Swagger UI и ReDoc, а также при формировании URL в объекте request.

По умолчанию параметр равен пустой строке, то есть приложение считается доступным от корня домена.

Синтаксис

FastAPI(root_path='/prefix')

Пример

Давайте создадим приложение с корневым путём '/api' и одним маршрутом:

from fastapi import FastAPI app = FastAPI(root_path='/api') @app.get('/') def index(): return {'text': 'hello'}

Теперь документация будет доступна по адресу '/api/docs', а схема OpenAPI - по адресу '/api/openapi.json'. Результат выполнения кода для адреса '/api/':

{"text": "hello"}

Пример

Давайте посмотрим, как root_path влияет на свойство root_path у объекта запроса:

from fastapi import FastAPI, Request app = FastAPI(root_path='/api') @app.get('/user') def user(request: Request): return { 'root_path': request.scope['root_path'], 'path': request.scope['path'] }

Результат выполнения кода для адреса '/api/user':

{"root_path": "/api", "path": "/user"}

Пример

Давайте создадим два приложения с разными корневыми путями и посмотрим на разницу в адресах документации:

from fastapi import FastAPI app_root = FastAPI() app_api = FastAPI(root_path='/api') @app_root.get('/') def root_index(): return {'app': 'root'} @app_api.get('/') def api_index(): return {'app': 'api'}

У приложения app_root документация будет доступна по адресу '/docs', а у приложения app_api - по адресу '/api/docs'. Результат выполнения кода для адреса '/api/':

{"app": "api"}

Смотрите также

  • класс FastAPI,
    который создаёт приложение и принимает параметр root_path
  • параметр servers,
    который задаёт список серверов в схеме OpenAPI
  • атрибут openapi_url,
    который задаёт адрес схемы OpenAPI
  • атрибут docs_url,
    который задаёт адрес Swagger UI
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить