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.