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