Встречается на собеседованиях • сегодня

Опиши механиз dependency injection в FastAPI

FastAPI использует встроенную систему dependency injection (DI) для управления зависимостями в маршрутах. DI позволяет внедрять сервисы, репозитории или конфигурации без жесткой привязки к коду.

Пример:

python
from fastapi import Depends, FastAPI

app = FastAPI()

def get_db():
db = "Database connection"
yield db

@app.get("/items/")
def read_items(db: str = Depends(get_db)):
return {"db": db}

text

**Как это работает:**  
1. **`Depends`** — декоратор/аннотация, указывающая FastAPI внедрить зависимость.  
2. **Генераторы (`yield`)** — поддерживаются для ресурсов, требующих очистки (например, соединения с БД).  
3. **Иерархия зависимостей** — можно вкладывать `Depends` для сложных сценариев.  

**Преимущества:**  
- Упрощает тестирование (зависимости легко подменить).  
- Уменьшает связанность кода.  
- Поддерживает асинхронные зависимости.  

FastAPI автоматически разрешает зависимости и передает их в маршруты.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы