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

Как в FastAPI делается инверсия зависимостей

FastAPI использует механизм Dependency Injection (DI) через декоратор @app.depends(). Зависимости объявляются как функции, которые могут принимать параметры запроса, другие зависимости и возвращать значения.

Пример:

python
from fastapi import FastAPI, Depends

app = FastAPI()

def get_db():
db = "db_connection"
try:
yield db
finally:
print("Close connection")

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

text

Ключевые моменты:
1. Зависимости могут быть функциями или классами
2. Поддерживаются асинхронные зависимости
3. Можно использовать `yield` для управления жизненным циклом (как в примере с БД)
4. Зависимости могут зависеть от других зависимостей
5. FastAPI автоматически разрешает зависимости при обработке запроса

Для сложных сценариев можно использовать `Depends()` в маршрутах, зависимостях и даже в других зависимостях, создавая иерархию.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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