Обработка запроса
Во всех событиях доступен apiContext — контекст API.
| Событие | Остальные параметры | Что можно изменить |
|---|---|---|
| onBeforeParameters | route | Роут; параметры запроса через apiContext->setParams() |
| onAfterParameters | route, exception | Роут и ошибку проверки |
| onBeforeController | route | Роут перед вызовом контроллера |
| onAfterController | route, response | Массив, возвращённый контроллером |
| onBeforeResponse | httpRequest, response | Готовый Bitrix\Main\HttpResponse |
| onAfterResponse | httpRequest, response | Ответ уже отправлен |
Параметры
В onAfterParameters параметр exception содержит ошибку проверки или null. Чтобы отменить ошибку и продолжить запрос, верните EventResult::SUCCESS с exception => null.
Контроллер
В onAfterController можно заменить массив response через EventResult::SUCCESS. При попадании в кеш события контроллера не вызываются; проверки доступа и параметров сохраняются.
Ответ
В onBeforeResponse можно заменить готовый Bitrix\Main\HttpResponse. Возврат массива или HttpResponse досрочно завершает обработку, включая следующих обработчиков и onAfterResponse.
onAfterResponse в HTTP выполняется фоновой задачей после отправки ответа; выполнение при аварийном завершении процесса не гарантируется. В CLI обработчики вызываются сразу в этой точке кода. В обоих режимах результат обработчика не меняет отправленный ответ. Возврат массива или HttpResponse прекращает только следующих обработчиков этого события; второй ответ не отправляется.
Константы — в справочнике ModuleEventConfig.