Junior — Middle
Каква е ролята на внедряването на зависимости във FastAPI и защо е необходимо?
sobes.tech AI
Отговор от AI
Внедряването на зависимости (Dependency Injection, DI) в FastAPI се използва за управление на зависимостите между компонентите на приложението, например, за свързване към база данни, получаване на текущия потребител, настройка на кеша и др. Това позволява:
- Да се премахне твърдата свързаност между компонентите.
- Да се подобри тестируемостта на кода, тъй като зависимостите могат лесно да се заменят.
- Централизирано управление на създаването и жизнения цикъл на обектите.
FastAPI реализира DI чрез параметризация на функциите обработчици с Depends. Например:
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 е зависимост, която автоматично се внедрява в обработчика. Това улеснява управлението на ресурсите и увеличава модулността на приложението.