Sobes.tech
Back to questions
Junior — Middle
55

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

Companies where asked
ИнфоТехСервис

Answer from AI

sobes.tech AI

В FastAPI Depends используется для внедрения зависимостей, что даёт несколько преимуществ:

  • Повторное использование кода: можно определить общие зависимости (например, подключение к базе данных, проверку авторизации) и использовать их в разных эндпоинтах.
  • Чистота и читаемость кода: зависимости явно указаны в параметрах функций, что облегчает понимание и поддержку.
  • Автоматическое управление жизненным циклом: FastAPI автоматически создаёт и уничтожает объекты зависимостей, если они определены как генераторы.
  • Интеграция с системой типизации Python: позволяет использовать автодополнение и проверку типов.

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

from fastapi import Depends, FastAPI

def get_token_header(token: str):
    if token != "secret-token":
        raise HTTPException(status_code=400, detail="Invalid Token")

app = FastAPI()

@app.get("/items/")
async def read_items(token: str = Depends(get_token_header)):
    return [{"item": "Foo"}]