Метод add_api_route
Метод add_api_route применяется к приложению
FastAPI и позволяет добавить маршрут программно,
без использования декораторов. Это удобно,
когда маршруты формируются динамически во время работы
приложения. Первым параметром передаётся путь URL,
вторым - функция-обработчик. Дополнительно можно
указать HTTP-метод через параметр methods
и другие опции маршрута.
Синтаксис
app.add_api_route(path, endpoint, methods=None, **kwargs)
Пример
Давайте добавим обработчик на адрес '/'
динамически, без декоратора:
from fastapi import FastAPI
app = FastAPI()
def index():
return {'text': 'hello'}
app.add_api_route('/', index)
Результат выполнения кода:
{"text": "hello"}
Пример
Давайте укажем HTTP-метод через параметр methods
и примем параметр name из URL:
from fastapi import FastAPI
app = FastAPI()
def user(name: str):
return {'name': name}
app.add_api_route('/user/{name}', user, methods=['GET'])
Результат выполнения кода для адреса /user/abcde:
{"name": "abcde"}
Пример
Давайте добавим маршрут для POST-запроса
с тегом tags и статус-кодом:
<+python+>
from fastapi import FastAPI
app = FastAPI()
def create_user():
return {'status': 'created'}
app.add_api_route(
'/user',
create_user,
methods=['POST'],
status_code=201,
tags=['users']
)
<-python+>
Результат выполнения кода для POST-запроса на адрес /user:
{"status": "created"}
Смотрите также
-
метод
api_route,
который вешает обработчик на произвольный HTTP-метод -
метод
add_api_websocket_route,
который добавляет WebSocket-маршрут программно -
метод
get,
который вешает обработчик на GET-запрос -
метод
include_router,
который подключает роутер к приложению