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