Sobes.tech
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.