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

Контекст API

Контекст API хранит данные текущего запроса: параметры, роут и сведения об авторизованном пользователе. Контроллеры и обработчики событий используют один объект контекста.

Получение контекста

use Native\Api\Context;

$context = Context::getCurrent();

Данные запроса

МетодРезультат
getRequestId()Идентификатор запроса
getRequestMethod()HTTP-метод
isCli()true, если модуль выполняется через PHP CLI
getParams()Объединённые параметры адреса, строки запроса и тела
getRoute()Текущий роут; до его выбора — null
getAuth()Данные авторизации, включая User ID; без авторизации — null

Используйте getRequestId(), чтобы найти запрос в истории. Этот идентификатор связывает основную запись, входящие и исходящие данные и каталог файловых журналов. Метод getRequestStatus() возвращает PROCESSED или REJECTED: статус отражает прохождение проверки лимита.

Выполнение в CLI

$context->isCli() позволяет определить запуск через командную строку. В этом режиме обработчики onAfterResponse выполняются сразу после отправки ответа; их результат не меняет уже отправленный ответ.

Пользователь

После авторизации API контекст содержит ID пользователя Битрикса, от имени которого выполняется запрос:

$userId = $context->getAuth()?->getUserId();

Без авторизации $userId равен null. Права пользователя на запрашиваемые данные проверяет контроллер.

Настройки роута

В контроллере полная конфигурация роута, включая пользовательские настройки, доступна через:

$config = $context->getRoute()
    ->getConfig()
    ->toArray();

IP-списки выбранного роута можно получить без чтения полного конфига:

$config = $context->getRoute()?->getConfig();
$whitelist = $config?->getSecurityIpWhitelist() ?? [];
$blacklist = $config?->getSecurityIpBlacklist() ?? [];

Назначение списков описано в безопасности роута.

События

В обработчики событий контекст передаётся в параметре apiContext. Метод setParams() позволяет изменить параметры запроса.