Назад к вопросам
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. Это упрощает тестирование, повторное использование и управление ресурсами.