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.