Атрибут prefix
Атрибут prefix применяется к экземпляру класса APIRouter
и задаёт общий префикс URL для всех маршрутов,
которые регистрируются в этом роутере.
Префикс автоматически подставляется перед каждым путём,
указанным в декораторах методов роутера.
Значение передаётся при создании роутера
в параметре prefix и хранится в одноимённом атрибуте.
Синтаксис
router = APIRouter(prefix='/path')
Пример
Давайте создадим роутер с префиксом '/users'
и зарегистрируем в нём обработчик:
from fastapi import FastAPI, APIRouter
app = FastAPI()
router = APIRouter(prefix='/users')
@router.get('/')
def users_list():
return {'users': ['abcde', 'article', 'user']}
app.include_router(router)
Результат выполнения кода для адреса /users/:
{"users": ["abcde", "article", "user"]}
Пример
Давайте посмотрим, как префикс объединяется с путями внутри роутера и с префиксом при подключении:
from fastapi import FastAPI, APIRouter
app = FastAPI()
router = APIRouter(prefix='/users')
@router.get('/')
def users_list():
return {'action': 'list'}
@router.get('/{name}')
def user_detail(name: str):
return {'name': name}
app.include_router(router, prefix='/api')
Результат выполнения кода для адреса /api/users/abcde:
{"name": "abcde"}
Как видно из примера, итоговый путь складывается
из префикса при подключении '/api',
префикса роутера '/users'
и пути маршрута '/{name}'.
Смотрите также
-
класс
APIRouter,
который группирует маршруты в отдельный роутер -
метод
include_router,
который подключает роутер к приложению -
атрибут
tags,
который задаёт теги для маршрутов роутера -
атрибут
dependencies,
который задаёт зависимости для маршрутов роутера