Sobes.tech
Junior — Middle

FastAPI'da bog'lanishlarni injektsiya qilishning roli nima va nima uchun kerak?

sobes.tech AI

AIdan javob

FastAPI'da Bağımlılık Enjeksiyonu (Dependency Injection, DI), tətbiqin komponentları 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.