Sobes.tech
Назад к вопросам
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. Таким образом, логика работы с базой данных отделена от основного кода маршрута, что соответствует принципу инверсии зависимостей.