Router¶
Router регистрирует хэндлеры и объединяет суб-роутеры. Bot / FastVK наследует его.
Декораторы хэндлеров¶
@router.message¶
Регистрирует хэндлер для событий message_new.
@router.callback¶
Регистрирует хэндлер для событий message_event (нажатие callback кнопки).
@router.error¶
Регистрирует глобальный обработчик ошибок. Вызывается когда любой другой хэндлер выбрасывает исключение.
Фильтры уровня роутера¶
Все хэндлеры этого роутера получат события только если IsAdmin() вернёт True.
include_router¶
Объединить все хэндлеры из other_router в этот роутер (хэндлеры разрешаются в порядке регистрации).
Dependency injection¶
Параметры хэндлера разрешаются по типу:
async def handler(
message: Message, # объект события
user: User, # автоматически получен для message_new
state: FSMContext, # FSM контекст для этого пользователя+чата
bot: Bot, # экземпляр бота
) -> None: ...
Кастомные типы можно внедрить через middleware добавив их в словарь data.
Порядок разрешения хэндлеров¶
- Хэндлеры зарегистрированные первыми имеют приоритет.
- Если фильтры хэндлера прошли, он обрабатывает событие и останавливает обработку.
- Фильтры уровня роутера проверяются перед фильтрами уровня хэндлера.
- Хэндлеры суб-роутеров проверяются после хэндлеров родительского роутера.