Sobes.tech
Назад к вопросам
Junior — Middle
62

Можете объяснить, как осуществляется передача зависимостей в FastAPI и зачем это нужно?

Компании, где спрашивали
30бит30бит

Ответ от нейросети

sobes.tech AI

В FastAPI передача зависимостей реализуется через механизм Dependency Injection с помощью функции Depends. Это позволяет автоматически получать нужные объекты или данные в обработчиках запросов без явного создания или передачи их вручную.

Зачем это нужно:

  • Упрощает тестирование, так как зависимости можно легко заменять.
  • Повышает читаемость и повторное использование кода.
  • Позволяет централизованно управлять ресурсами, например, подключениями к базе данных.

Пример:

from fastapi import FastAPI, Depends

def get_db():
    db = connect_to_db()
    try:
        yield db
    finally:
        db.close()

app = FastAPI()

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

Здесь get_db — зависимость, которая передается в обработчик read_items автоматически.