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.