Junior — Middle
Aká je úloha injektáže závislostí vo FastAPI a prečo je to potrebné?
sobes.tech AI
Odpoveď od AI
Vstrekovanie závislostí (Dependency Injection, DI) v FastAPI sa používa na správu závislostí medzi komponentmi aplikácie, napríklad na pripojenie k databáze, získanie aktuálneho používateľa, nastavenie cache atď. To umožňuje:
- Odstrániť pevné väzby medzi komponentmi.
- Zlepšiť testovateľnosť kódu, pretože závislosti je možné ľahko nahradiť.
- Centralizovane spravovať tvorbu a životný cyklus objektov.
FastAPI implementuje DI prostredníctvom parametrizácie funkcií obsluhovačov pomocou Depends. Naprí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
Tu je get_db závislosť, ktorá je automaticky vkladaná do obsluhovača. To uľahčuje správu zdrojov a zvyšuje modularitu aplikácie.