Depends(get_db) просит FastAPI получить зависимость через get_db и передать её результат обработчику. Это отделяет создание и освобождение ресурса от бизнес-логики ручки.
Как работает `Depends(get_db)` в контексте FastAPI-ручки и зачем нужен механизм dependency injection?
Depends(get_db) просит FastAPI получить зависимость через get_db и передать её результат обработчику. Это отделяет создание и освобождение ресурса от бизнес-логики ручки.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Depends(get_db) просит FastAPI получить зависимость через get_db и передать её результат обработчику. Это отделяет создание и освобождение ресурса от бизнес-логики ручки.
В типичном варианте get_db создаёт сессию БД, делает yield session и закрывает её в finally. Обработчик получает готовую зависимость, а тест может заменить её контролируемой реализацией. Конкретные commit/rollback не возникают автоматически от слова Depends: их политика определяется вашим кодом. Нельзя делить одну активную ORM-сессию между независимыми конкурентными запросами. Dependency injection помогает управлять временем жизни и связями компонентов, но сам по себе не гарантирует транзакционную корректность.