Встречается на собеседованиях • сегодня
Как в 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()` в маршрутах, зависимостях и даже в других зависимостях, создавая иерархию.
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы