Sobes.tech
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-ում: Սա հեշտացնում է ռեսուրսների կառավարումը և բարձրացնում է հավելվածի մոդուլայնությունը։