Sobes.tech
Junior — Middle

რა არის დამოკიდებულებების ინექციის როლი 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-ში. ეს ამარტივებს რესურსების მართვას და ზრდის აპლიკაციის მოდულურობას.