Junior — Middle
Kāda ir atkarību injekcijas loma FastAPI un kāpēc tā ir nepieciešama?
sobes.tech AI
Atbilde no AI
FastAPI atkarības injekcija (Dependency Injection, DI) tiek izmantota, lai pārvaldītu atkarības starp lietojumprogrammas komponentiem, piemēram, savienojoties ar datu bāzi, iegūstot pašreizējo lietotāju, konfigurējot kešatmiņu utt. Tas ļauj:
- Izvairīties no stingras komponentu savienojuma.
- Uzlabot koda testējamību, jo atkarības var viegli aizstāt.
- Centralizēti pārvaldīt objektu izveidi un dzīves ciklu.
FastAPI realizē DI, izmantojot funkciju parametrizāciju ar Depends. Piemēram:
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
Šeit get_db ir atkarība, kas automātiski tiek injicēta handler funkcijā. Tas atvieglo resursu pārvaldību un palielina lietojumprogrammas modulatitāti.