Back to questions
Junior — Middle
76
Можете объяснить, что означает директива Depends в FastAPI и как она используется для внедрения зависимостей?
Answer from AI
sobes.tech AI
В FastAPI директива Depends используется для внедрения зависимостей — это способ передать в обработчик запроса дополнительные объекты или функции, которые нужны для работы, например, подключение к базе данных, проверка пользователя или получение параметров.
Когда вы используете Depends, FastAPI автоматически вызывает функцию или класс, указанный в Depends, и передает результат в ваш маршрут. Это упрощает повторное использование кода и делает его более модульным.
Пример:
from fastapi import FastAPI, Depends
app = FastAPI()
def get_token_header(token: str):
if token != "expected_token":
raise HTTPException(status_code=400, detail="Invalid Token")
return token
@app.get("/items/")
async def read_items(token: str = Depends(get_token_header)):
return {"token": token}
Здесь get_token_header — зависимость, которая проверяет токен, а в маршруте она внедряется через Depends. FastAPI сам вызовет get_token_header и передаст результат в параметр token.