Sobes.tech
Back to questions
Junior — Middle
63

Каким образом реализуется внедрение зависимостей в FastAPI и как оно используется?

Companies where asked
Медси

Answer from AI

sobes.tech AI

В FastAPI внедрение зависимостей реализуется с помощью функции Depends. Это позволяет автоматически передавать необходимые объекты или данные в обработчики запросов (эндпоинты) без явного создания их внутри функции.

Пример использования:

from fastapi import FastAPI, Depends

app = FastAPI()

def common_parameters(q: str = None, limit: int = 10):
    return {"q": q, "limit": limit}

@app.get("/items/")
async def read_items(commons: dict = Depends(common_parameters)):
    return commons

Здесь common_parameters — функция-зависимость, которая принимает параметры запроса и возвращает словарь. В эндпоинте read_items она подключается через Depends, и FastAPI автоматически вызывает эту функцию и передаёт результат в параметр commons.

Таким образом, внедрение зависимостей помогает:

  • Избежать дублирования кода
  • Упростить тестирование
  • Централизовать логику получения данных или сервисов

Можно внедрять базы данных, сервисы, настройки и многое другое, используя Depends.