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