Sobes.tech
Junior — Middle

FastAPI'de bağımlılık enjeksiyonunun rolü nedir ve neden gereklidir?

sobes.tech yapay zeka

AI'dan gelen yanıt

FastAPI'de Bağımlılık Enjeksiyonu (Dependency Injection, DI), uygulama bileşenleri arasındaki bağımlılıkları yönetmek için kullanılır; örneğin, veritabanına bağlanmak, mevcut kullanıcıyı almak, önbelleği yapılandırmak vb. Bu, şunlara olanak tanır:

  • Bileşenler arasındaki katı bağlılığı ortadan kaldırmak.
  • Bağımlılıkların kolayca değiştirilebildiği için kodun test edilebilirliğini artırmak.
  • Nesnelerin oluşturulması ve yaşam döngüsünün merkezi olarak yönetilmesi.

FastAPI, Depends kullanarak handler fonksiyonlarının parametreleştirilmesi yoluyla DI'yi uygular. Örneğin:

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 bağımlılığı otomatik olarak handler'a enjekte edilir. Bu, kaynakların yönetimini kolaylaştırır ve uygulamanın modülerliğini artırır.