Sobes.tech
Назад к вопросам
Junior — Middle
61

Объясните, что подразумевается под зависимостью в FastAPI и как она реализуется

Компании, где спрашивали
Медси

Ответ от нейросети

sobes.tech AI

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

Реализуется это с помощью функции или класса, которая возвращает нужный объект, и декоратора Depends. FastAPI автоматически вызывает эту функцию, управляет её жизненным циклом и передаёт результат в функцию обработчика.

Пример:

from fastapi import FastAPI, Depends

app = FastAPI()

def get_db():
    db = create_db_session()  # создаём сессию базы данных
    try:
        yield db
    finally:
        db.close()  # закрываем сессию после использования

@app.get("/items/")
async def read_items(db = Depends(get_db)):
    items = db.query(Item).all()
    return items

Здесь get_db — зависимость, которая создаёт и предоставляет сессию базы данных. FastAPI вызывает её автоматически и передаёт в read_items. Это упрощает тестирование, повторное использование и управление ресурсами.