Sobes.tech
Junior — Middle

Jaká je role injektáže závislostí ve FastAPI a proč je nutná?

sobes.tech AI

Odpověď od AI

Vstřikování závislostí (Dependency Injection, DI) v FastAPI se používá k řízení závislostí mezi komponentami aplikace, například k připojení k databázi, získání aktuálního uživatele, nastavení cache atd. To umožňuje:

  • Odstranit pevné vazby mezi komponentami.
  • Zlepšit testovatelnost kódu, protože závislosti lze snadno nahradit.
  • Centralizovaně spravovat tvorbu a životní cyklus objektů.

FastAPI implementuje DI prostřednictvím parametrizace funkcí obsluhovačů pomocí Depends. Například:

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

Zde je get_db závislost, která je automaticky vkládána do obsluhovače. To usnadňuje správu zdrojů a zvyšuje modularitu aplikace.