Назад к вопросам
Junior — Middle
57
Как реализовать принцип инверсии зависимостей в FastAPI?
Компании, где спрашивали
СБЕР Бизнес
Ответ от нейросети
sobes.tech AI
В FastAPI принцип инверсии зависимостей реализуется через механизм Dependency Injection с помощью функции Depends. Это позволяет отделить создание и управление зависимостями от бизнес-логики, что упрощает тестирование и поддержку кода.
Пример:
from fastapi import FastAPI, Depends
app = FastAPI()
def get_db():
db = "Подключение к базе данных"
try:
yield db
finally:
print("Закрытие подключения")
@app.get("/items/")
async def read_items(db=Depends(get_db)):
return {"db_connection": db}
Здесь get_db — зависимость, которая инжектируется в обработчик read_items. Таким образом, логика работы с базой данных отделена от основного кода маршрута, что соответствует принципу инверсии зависимостей.