РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
67 of 307 menu

Метод add_api_route

Метод add_api_route применяется к экземпляру класса APIRouter и добавляет новый маршрут в роутер программным способом. Первым параметром передаётся путь URL, вторым - функция-обработчик, третьим - список HTTP-методов. Этот метод удобен, когда маршруты нужно создавать динамически или когда декораторы не подходят по архитектурным причинам.

Синтаксис

router.add_api_route(path, endpoint, methods=None)

Пример

Давайте создадим роутер и добавим в него обработчик для GET-запроса по адресу '/user':

from fastapi import FastAPI, APIRouter app = FastAPI() router = APIRouter() def get_user(): return {'name': 'abcde'} router.add_api_route('/user', get_user, methods=['GET']) app.include_router(router)

Результат выполнения кода для адреса /user:

{"name": "abcde"}

Пример

Давайте добавим обработчик, принимающий параметр пути user_id и возвращающий его значение:

from fastapi import FastAPI, APIRouter app = FastAPI() router = APIRouter() def get_user(user_id: int): return {'user_id': user_id} router.add_api_route('/user/{user_id}', get_user, methods=['GET']) app.include_router(router)

Результат выполнения кода для адреса /user/5:

{"user_id": 5}

Пример

Давайте зарегистрируем один обработчик сразу для нескольких HTTP-методов:

from fastapi import FastAPI, APIRouter app = FastAPI() router = APIRouter() def handle_article(): return {'text': 'article'} router.add_api_route( '/article', handle_article, methods=['GET', 'POST'] ) app.include_router(router)

Результат выполнения кода для GET-запроса по адресу /article:

{"text": "article"}

Смотрите также

  • класс APIRouter,
    который группирует маршруты в отдельный роутер
  • метод api_route,
    который является декоратором для добавления маршрута
  • метод get,
    который вешает обработчик на GET-запрос
  • метод include_router,
    который подключает роутер к приложению
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить