4.1 Внедрение функций и классов зависимости
5 из 5 шагов пройдено
1 из 1 баллa  получен

Использование вложенных зависимостей

Существуют некоторые сценарии, когда зависимые объекты также зависят от других зависимостей. Когда мы внедряем зависимость функции в другую функцию, зависимость класса в другой класс, цель состоит в том, чтобы построить вложенные зависимости. Они могут быть такими глубокими, какими вам нужно.

Давайте в файл main.py добавим следующий код:

from starlette.requests import Request



async def sub_dependency(request: Request) -> str:
    return request.method


async def main_dependency(sub_dependency_value: str = Depends(sub_dependency)) -> str:
    return sub_dependency_value


@app.get("/test/")
def test_endpoint(test: str = Depends(main_dependency)):
    return test

Как мы видим наша тестовая конечная точка зависит от функции main_dependency, которая зависит от sub_dependency, она в свою очередь возвращает тип запроса(request.method)

И теперь если мы запустим сервер и попробуем отправить GET запрос в Test Endpoint, то увидим следующий результат:

Что означает что вся цепочка зависимостей была исполнена, мы получили ответ в виде типа нашего запроса.


Будьте вежливы и соблюдайте наши принципы сообщества. Пожалуйста, не оставляйте решения и подсказки в комментариях, для этого есть отдельный форум.
Нет обсуждений. Начните первое.