Sobes.tech
Junior — Middle

Kāda ir atkarību injekcijas loma FastAPI un kāpēc tā ir nepieciešama?

sobes.tech AI

Atbilde no AI

FastAPI atkarības injekcija (Dependency Injection, DI) tiek izmantota, lai pārvaldītu atkarības starp lietojumprogrammas komponentiem, piemēram, savienojoties ar datu bāzi, iegūstot pašreizējo lietotāju, konfigurējot kešatmiņu utt. Tas ļauj:

  • Izvairīties no stingras komponentu savienojuma.
  • Uzlabot koda testējamību, jo atkarības var viegli aizstāt.
  • Centralizēti pārvaldīt objektu izveidi un dzīves ciklu.

FastAPI realizē DI, izmantojot funkciju parametrizāciju ar Depends. Piemēram:

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

Šeit get_db ir atkarība, kas automātiski tiek injicēta handler funkcijā. Tas atvieglo resursu pārvaldību un palielina lietojumprogrammas modulatitāti.