Sobes.tech
Junior — Middle

Welche Rolle spielt die Dependency Injection in FastAPI und warum ist sie notwendig?

sobes.tech KI

Antwort von AI

Dependency Injection (DI) in FastAPI wird verwendet, um Abhängigkeiten zwischen den Komponenten der Anwendung zu verwalten, z.B. für die Verbindung zur Datenbank, das Abrufen des aktuellen Benutzers, die Konfiguration des Cachings usw. Dies ermöglicht:

  • Das Entfernen starrer Kopplungen zwischen Komponenten.
  • Die Verbesserung der Testbarkeit des Codes, da Abhängigkeiten leicht ausgetauscht werden können.
  • Die zentrale Verwaltung der Erstellung und des Lebenszyklus von Objekten.

FastAPI implementiert DI durch die Parametrisierung von Handler-Funktionen mit Depends. Zum Beispiel:

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

Hier ist get_db eine Abhängigkeit, die automatisch in den Handler injiziert wird. Dies vereinfacht die Ressourcenverwaltung und erhöht die Modularität der Anwendung.