Sobes.tech
Junior — Middle

Kokia yra priklausomybių injekcijos vaidmuo FastAPI ir kodėl ji yra būtina?

sobes.tech AI

Atsakymas iš AI

FastAPI priklausomybių injekcija (Dependency Injection, DI) naudojama valdyti priklausomybes tarp programos komponentų, pavyzdžiui, jungiantis prie duomenų bazės, gaunant dabartinį vartotoją, konfigūruojant talpyklą ir kt. Tai leidžia:

  • Pašalinti griežtą komponentų tarpusavio ryšį.
  • Pagerinti kodo testavimą, nes priklausomybes galima lengvai pakeisti.
  • Centrinį objektų kūrimo ir gyvavimo ciklo valdymą.

FastAPI įgyvendina DI per funkcijų parametrizaciją naudojant Depends. Pavyzdžiui:

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

Čia get_db yra priklausomybė, kuri automatiškai įvedama į handler. Tai palengvina išteklių valdymą ir didina programos modulį.