Sobes.tech
Junior — Middle

Milline on sõltuvuste süstimise roll FastAPI-s ja miks see on vajalik?

sobes.tech AI

Vastus AI-lt

FastAPI sõltuvuste süstimine (Dependency Injection, DI) kasutatakse rakenduse komponentide vahel sõltuvuste haldamiseks, näiteks ühenduse loomine andmebaasiga, praeguse kasutaja saamine, vahemälu seadistamine jne. See võimaldab:

  • Eemaldada ranget sidet komponentide vahel.
  • Parandada koodi testitavust, kuna sõltuvusi saab hõlpsasti asendada.
  • Keskne juhtimine objektide loomise ja elutsükli üle.

FastAPI rakendab DI-d funktsioonide parameetrite kaudu Depends abil. Näide:

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

Siin on get_db sõltuvus, mis automaatselt süstitakse käsitlejasse. See lihtsustab ressursside haldamist ja suurendab rakenduse modulaarust.