Sobes.tech
Junior — Middle

Jaka jest rola wstrzykiwania zależności w FastAPI i dlaczego jest to konieczne?

sobes.tech AI

Odpowiedź od AI

Wstrzykiwanie zależności (Dependency Injection, DI) w FastAPI służy do zarządzania zależnościami między komponentami aplikacji, na przykład do łączenia się z bazą danych, pobierania aktualnego użytkownika, konfigurowania pamięci podręcznej itp. To umożliwia:

  • Pozbycie się sztywnego powiązania między komponentami.
  • Zwiększenie testowalności kodu, ponieważ zależności można łatwo podmienić.
  • Centralne zarządzanie tworzeniem i cyklem życia obiektów.

FastAPI realizuje DI poprzez parametryzację funkcji obsługi za pomocą Depends. Na przykład:

from fastapi import FastAPI, Depends

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

app = FastAPI()

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

Tutaj get_db jest zależnością, która jest automatycznie wstrzykiwana do obsługi. Ułatwia to zarządzanie zasobami i zwiększa modularność aplikacji.