2.4 Маршрутизация в FastAPI
15 из 15 шагов пройдено
38 из 38 баллов  получено

Маршрутизация является важной частью создания веб-приложения. Маршрутизация — это процесс обработки HTTP-запросов, отправляемых клиентом на сервер. HTTP-запросы отправляются по определенным маршрутам, для которых определены обработчики для обработки запросов и ответа. Эти обработчики называются обработчиками маршрутов.

Объявление типа параметра

FastAPI поддерживает общие типы, такие как None, bool, int и float, а также типы контейнеров, такие как list, tuple, dict, set. Другие сложные типы Python, такие, как datetime.date, datetime.time, UUID, байты и десятичные числа также поддерживаются. Фреймворк также поддерживает типы данных, включенные в модуль типизации Python, отвечающий за подсказки типов. Эти типы данных являются стандартными обозначениями для Python и аннотациями типов переменных, которые могут помочь в проверке типов и модели во время компиляции, например, Optional, List, Dict, Set, Union, Tuple, FrozenSet, Iterable, и Deque.

 

Параметры пути

FastAPI позволяет получать данные запроса из URL-адреса конечной точки API через параметр пути или переменную пути, что делает URL-адрес несколько динамичным. Этот параметр содержит значение, которое становится частью URL-адреса, обозначенного фигурными скобками ({}). После установки этих параметров пути в URL-адресе FastAPI требует, чтобы эти параметры были объявлены с применением подсказок типов.

Давайте добавим новую функцию в наше приложение, функция welcome_user будет обрабатывать имя пользователя, получая его из параметра пути:

from fastapi import FastAPI

app = FastAPI()


@app.get("/")
async def welcome() -> dict:
    return {"message": "Hello World"}


@app.get("/hello/{user}")
async def welcome_user(user: str) -> dict:
    return {"user": f'Hello {user}'}

И теперь если мы запустим наш сервер командой:

uvicorn api:app --port 8000 --reload

Далее перейдем по адресу, например http://127.0.0.1:8000/hello/Ilya, то увидим следующий вывод:

Документация Swagger UI по этой функции показывает всего один параметр пути, это user соответственно типа str.

Мы также можем передать параметры в документации, и посмотреть поведение нашей функции.

После ввода в поле  user строки, мы получаем ответ от нашей функции. В следующем шаге мы продолжим работу с маршрутами в FastAPI.


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