Документация1С-Битрикс: Модулиnative.apiРазработчикамСобытия

Запуск и роутинг

Во всех событиях доступен apiContext — контекст API.

СобытиеМомент вызоваОстальные параметры
onBeforeStartДо проверки активности модуляhttpRequest
onAfterStartПосле проверки активности модуляhttpRequest
onBeforeCorsПосле глобальной проверки IP, до проверки CORShttpRequest
onAfterCorsПосле успешного завершения проверки CORShttpRequest
onBeforeRoutingПосле CORS, непосредственно перед поиском роутаhttpRequest
onAfterRoutingПосле выбора роута, до его IP-проверки и авторизацииhttpRequest, route

Параметры

httpRequest — Bitrix\Main\HttpRequest. route — Native\Api\Routing\Route\CompiledRoute; его конфигурация доступна через getConfig().

Через EventResult::SUCCESS можно заменить httpRequest, а после выбора роута — route. Типы объектов должны сохраняться.

CORS и выбор роута

CORS проверяется между onBeforeCors и onAfterCors, до событий маршрутизации. Настройки CORS не передаются в параметры событий. Заголовок Origin:

$origin = $httpRequest->getHeader('Origin');

onAfterCors вызывается после успешного завершения валидатора, включая запросы без Origin. При отказе CORS это событие и события маршрутизации не вызываются. Обычный массив или HttpResponse из CORS-обработчика немедленно завершает конвейер по общему контракту. Изменение запроса в After не запускает повторную проверку CORS.

После onAfterRouting вызывается onBeforeIpAccess, проверяются IP-списки выбранного роута. При успешной проверке вызывается onAfterIpAccess. Если обработчик onAfterRouting заменил route, используются списки нового роута.

Штатный OPTIONS завершается после onAfterCors: ни onBeforeRouting, ни onAfterRouting не вызываются. Для остальных запросов onBeforeRouting выполняется перед поиском роута; если роут не найден, onAfterRouting не вызывается.

Константы — в справочнике ModuleEventConfig.