Junior — Middle
Qual è il ruolo dell'iniezione delle dipendenze in FastAPI e perché è necessaria?
sobes.tech AI
Risposta dell'AI
L'iniezione delle dipendenze (Dependency Injection, DI) in FastAPI viene utilizzata per gestire le dipendenze tra i componenti dell'applicazione, ad esempio, per connettersi al database, ottenere l'utente corrente, configurare la cache, ecc. Questo permette di:
- Eliminare il legame rigido tra i componenti.
- Migliorare la testabilità del codice, poiché le dipendenze possono essere facilmente sostituite.
- Gestire centralmente la creazione e il ciclo di vita degli oggetti.
FastAPI implementa DI attraverso la parametrizzazione delle funzioni gestori con Depends. Ad esempio:
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
Qui, get_db è una dipendenza che viene automaticamente iniettata nel gestore. Questo semplifica la gestione delle risorse e aumenta la modularità dell'applicazione.