Класс APIRouter
Класс APIRouter применяется для создания отдельного роутера,
который группирует маршруты по логическому признаку.
Первым параметром можно передать префикс пути prefix,
который будет добавлен ко всем маршрутам роутера.
Также можно передать теги tags и зависимости dependencies.
Синтаксис
from fastapi import APIRouter
router = APIRouter(prefix='/items', tags=['items'])
Пример
Давайте создадим роутер и повесим на него обработчик GET-запроса:
from fastapi import APIRouter
router = APIRouter(prefix='/items')
@router.get('/')
def get_items():
return {'items': ['a', 'b', 'c', 'd', 'e']}
Теперь подключим этот роутер к основному приложению:
from fastapi import FastAPI
from routers.items import router as items_router
app = FastAPI()
app.include_router(items_router)
Результат выполнения кода для адреса /items/:
{"items": ["a", "b", "c", "d", "e"]}
Пример
Давайте передадим параметр user_id из URL через роутер:
from fastapi import APIRouter
router = APIRouter(prefix='/users')
@router.get('/{user_id}')
def get_user(user_id: int):
return {'user_id': user_id}
Подключим роутер в главном файле:
from fastapi import FastAPI
from routers.users import router as users_router
app = FastAPI()
app.include_router(users_router)
Результат выполнения кода для адреса /users/5:
{"user_id": 5}
Смотрите также
-
метод
include_router,
который подключает роутер к приложению -
атрибут
prefix,
который задаёт префикс для всех маршрутов роутера -
атрибут
tags,
который добавляет теги для документации -
метод
get,
который вешает обработчик на GET-запрос