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.