Junior — Middle
Ի՞նչ է Dependency Injection-ի դերը FastAPI-ում և ինչու է դա անհրաժեշտ:
sobes.tech AI
Պատասխան AI-ից
FastAPI-յի Dependency Injection (DI)-ը օգտագործվում է հավելվածի բաղադրիչների միջև կախվածությունները կառավարելու համար, օրինակ՝ տվյալների բազայի հետ կապ հաստատելու, ընթացիկ օգտվողին ստանալու, կեշի կարգավորելու և այլն: Սա թույլ է տալիս.
- Հեռացնել բաղադրիչների միջև խիստ կապը:
- Բարելավել կոդի թեստավորման հնարավորությունը, քանի որ կախվածությունները հեշտությամբ փոխարինելի են:
- Կենտրոնական կառավարում ստեղծման և կյանքի ցիկլի օբյեկտների:
FastAPI-ն իրականացնում է DI- ն Depends-ի միջոցով, որը օգտագործվում է handler ֆունկցիաների պարամետրավորման համար: Օրինակ՝
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
Այստեղ, get_db-ը կախվածություն է, որը ավտոմատ կերպով ներդրվում է handler-ում: Սա հեշտացնում է ռեսուրսների կառավարումը և բարձրացնում է հավելվածի մոդուլայնությունը։