Sobes.tech
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.