Junior — Middle
Jaka jest rola wstrzykiwania zależności w FastAPI i dlaczego jest to konieczne?
sobes.tech AI
Odpowiedź od AI
Wstrzykiwanie zależności (Dependency Injection, DI) w FastAPI służy do zarządzania zależnościami między komponentami aplikacji, na przykład do łączenia się z bazą danych, pobierania aktualnego użytkownika, konfigurowania pamięci podręcznej itp. To umożliwia:
- Pozbycie się sztywnego powiązania między komponentami.
- Zwiększenie testowalności kodu, ponieważ zależności można łatwo podmienić.
- Centralne zarządzanie tworzeniem i cyklem życia obiektów.
FastAPI realizuje DI poprzez parametryzację funkcji obsługi za pomocą Depends. Na przykład:
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
Tutaj get_db jest zależnością, która jest automatycznie wstrzykiwana do obsługi. Ułatwia to zarządzanie zasobami i zwiększa modularność aplikacji.