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.