Как работает `Depends(get_db)` в контексте FastAPI-ручки и зачем нужен механизм dependency injection?

Depends(get_db) просит FastAPI получить зависимость через get_db и передать её результат обработчику. Это отделяет создание и освобождение ресурса от бизнес-логики ручки.

Короткий ответ

Что ответить на собеседовании

Depends(get_db) просит FastAPI получить зависимость через get_db и передать её результат обработчику. Это отделяет создание и освобождение ресурса от бизнес-логики ручки.

Подробный разбор

Ответ с пояснениями

Depends(get_db) просит FastAPI получить зависимость через get_db и передать её результат обработчику. Это отделяет создание и освобождение ресурса от бизнес-логики ручки.

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

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее