Sobes.tech
Junior — Middle

Wat is de rol van dependency injection in FastAPI en waarom is het nodig?

sobes.tech AI

Antwoord van AI

Dependency Injection (DI) in FastAPI wordt gebruikt om afhankelijkheden tussen de componenten van de applicatie te beheren, bijvoorbeeld voor het verbinden met de database, het verkrijgen van de huidige gebruiker, het configureren van caching, enzovoort. Dit stelt je in staat om:

  • Rigide koppelingen tussen componenten te verwijderen.
  • De testbaarheid van de code te verbeteren, omdat afhankelijkheden gemakkelijk kunnen worden vervangen.
  • Het creëren en de levenscyclus van objecten centraal te beheren.

FastAPI implementeert DI via de parametrisatie van handler functies met Depends. Bijvoorbeeld:

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

Hier is get_db een afhankelijkheid die automatisch wordt geïnjecteerd in de handler. Dit vereenvoudigt het beheer van resources en verhoogt de modulariteit van de applicatie.