Junior — Middle
Erklären Sie, was unter Abhängigkeit in FastAPI verstanden wird und wie sie implementiert wird
sobes.tech KI
Antwort von AI
In FastAPI ist eine Abhängigkeit eine Möglichkeit, Komponenten oder Ressourcen (z.B. Datenbanken, Einstellungen, Autorisierung) in Request-Handler (Endpunkte) zu injizieren, ohne sie explizit innerhalb der Funktionen zu erstellen.
Dies wird durch eine Funktion oder Klasse realisiert, die das benötigte Objekt zurückgibt, und den Dekorator Depends. FastAPI ruft diese Funktion automatisch auf, verwaltet ihren Lebenszyklus und übergibt das Ergebnis an die Handler-Funktion.
Beispiel:
from fastapi import FastAPI, Depends
app = FastAPI()
def get_db():
db = create_db_session() # Erstellen einer Datenbanksitzung
try:
yield db
finally:
db.close() # Schließen der Sitzung nach Verwendung
@app.get("/items/")
async def read_items(db = Depends(get_db)):
items = db.query(Item).all()
return items
Hier ist get_db eine Abhängigkeit, die eine Datenbanksitzung erstellt und bereitstellt. FastAPI ruft sie automatisch auf und übergibt sie an read_items. Das erleichtert Tests, Wiederverwendung und Ressourcenmanagement.