Метод 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,
который подключает роутер к приложению