Sobes.tech
Junior — Middle

FastAPI-də asılılıqların injeksiyasının rolu nədir və niyə vacibdir?

sobes.tech Süni İntellekt

AI-dan cavab

FastAPI-də Asılılıq Enjeksiyası (Dependency Injection, DI), tətbiqin komponentləri arasında asılılıqları idarə etmək üçün istifadə olunur, məsələn, verilənlər bazasına qoşulmaq, cari istifadəçini almaq, keşi tənzimləmək və s. Bu, aşağıdakı imkanları verir:

  • Komponentlər arasında sərt əlaqəni aradan qaldırmaq.
  • Kodun test ediləbilərliyini artırmaq, çünki asılılıqları asanlıqla dəyişdirmək mümkündür.
  • Obiektlərin yaradılması və həyat dövrünün mərkəzləşdirilmiş idarə olunması.

FastAPI, Depends vasitəsilə handler funksiyalarının parametrizasiyası ilə DI-ni həyata keçirir. Məsələn:

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

Burada, get_db asılılıqdır və avtomatik olaraq handler-ə enjekte olunur. Bu, resursların idarə olunmasını sadələşdirir və tətbiqin modullarını artırır.