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

Параметр dependencies

Параметр dependencies передаётся в конструктор класса FastAPI и принимает список зависимостей, которые FastAPI выполняет для каждого запроса ко всем маршрутам приложения. Каждая зависимость - это функция или класс, оформленный через Depends. Если зависимость вернёт ошибку, обработчик маршрута не будет вызван.

Синтаксис

app = FastAPI(dependencies=[Depends(dep1), Depends(dep2)])

Пример

Давайте создадим глобальную зависимость, которая проверяет заголовок X-Token:

from fastapi import FastAPI, Depends, Header, HTTPException def verify_token(x_token: str = Header()): if x_token != 'abcde': raise HTTPException(status_code=400, detail='Invalid token') return x_token app = FastAPI(dependencies=[Depends(verify_token)]) @app.get('/') def index(): return {'text': 'hello'}

Результат выполнения кода для запроса без заголовка:

{"detail": "Invalid token"}

Пример

Давайте передадим корректный заголовок X-Token и получим успешный ответ:

curl -H "X-Token: abcde" http://127.0.0.1:8000/

Результат выполнения кода:

{"text": "hello"}

Пример

Давайте добавим несколько глобальных зависимостей сразу:

from fastapi import FastAPI, Depends, Header, HTTPException def verify_token(x_token: str = Header()): if x_token != 'abcde': raise HTTPException(status_code=400, detail='Invalid token') return x_token def verify_key(x_key: str = Header()): if x_key != 'user': raise HTTPException(status_code=400, detail='Invalid key') return x_key app = FastAPI(dependencies=[Depends(verify_token), Depends(verify_key)]) @app.get('/article') def article(): return {'title': 'article'}

Результат выполнения кода при корректных заголовках:

{"title": "article"}

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

  • класс FastAPI,
    к которому применяется параметр dependencies
  • параметр route.dependencies,
    который задаёт зависимости для отдельного маршрута
  • метод include_router,
    который подключает роутер с его зависимостями
  • метод add_middleware,
    который добавляет middleware для обработки запросов
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить