Junior — Middle
Care este rolul injecției de dependențe în FastAPI și de ce este necesară?
sobes.tech AI
Răspuns de la AI
Injecția de dependințe (Dependency Injection, DI) în FastAPI este utilizată pentru gestionarea dependențelor dintre componentele aplicației, de exemplu, pentru conectarea la bazele de date, obținerea utilizatorului curent, configurarea cache-ului etc. Acest lucru permite:
- Eliminarea legăturii rigide între componente.
- Îmbunătățirea testabilității codului, deoarece dependențele pot fi ușor înlocuite.
- Gestionarea centralizată a creării și ciclului de viață al obiectelor.
FastAPI implementează DI prin parametrizarea funcțiilor handler cu Depends. De exemplu:
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
Aici, get_db este o dependență care este injectată automat în handler. Acest lucru simplifică gestionarea resurselor și crește modularitatea aplicației.