Документация1С-Битрикс: Модулиartamonov.rest

Обновления

Релизы: 2026

4.19.0

28.06.2026

ТипОписание
БезопасностьSQL-выборки журнала запросов переписаны на штатное D7 ORM — устранён риск SQL-инъекции через поля фильтра и значение токена
БезопасностьIP клиента определяется только по REMOTE_ADDR — подделка заголовков X-Forwarded-For / Client-IP больше не влияет на лимиты запросов и журнал
БезопасностьТокены и уникальные коды теперь генерируются криптостойко (random_int / random_bytes вместо rand и md5); ранее выданные токены остаются рабочими
БезопасностьПри удалении пользователя идентификатор приводится к целому числу
БезопасностьДемонстрационный контроллер больше не возвращает полный массив $_SERVER
БезопасностьВ заголовки ответа добавлена очистка переводов строки (защита от подмены HTTP-заголовков)
БезопасностьДля нативного провайдера добавлен контроль доступа к вызываемым классам и методам. По умолчанию действует чёрный список опасных операций (произвольный SQL, файловые операции и заливка файлов, управление пользователями и группами, внешние HTTP-запросы, рассылки и т.п.) — обычные read-вызовы не затронуты. Дополнительно поддерживается режим белого списка: перекрыв роут своим классом, можно разрешить только нужные классы и методы.
БезопасностьНа роуты управления токеном (создание, получение, удаление) добавлена защита от перебора учётных данных — при превышении лимита неудачных попыток с одного IP возвращается ответ 429
БезопасностьПри создании пользователя через API системные поля (группы, токен, служебные атрибуты) больше нельзя задать напрямую — защита от mass assignment и повышения привилегий. Набором полей можно управлять чёрным и белым списком, перекрыв роут своим классом.
БезопасностьАдминистративный AJAX генерации токенов теперь требует авторизации в админке, прав на раздел «Безопасность» и защищён от CSRF — массовая генерация токенов внешним запросом больше невозможна
БезопасностьКод поля токена из настроек проверяется как корректный идентификатор перед подстановкой в SQL — устранён риск инъекции через административную настройку

Подробнее о релизе

4.18.2

04.02.2026

ТипОписание
ИсправленоПоправлен сброс значений параметров

4.18.1

04.02.2026

ТипОписание
ДоработаноОбновлена ссылка на Документацию в меню модуля
ДоработаноДоработано описание параметра Отложенный запуск
ИсправленоИсправлено получение значений параметров. Причина: после обновления платформы, названия параметров приводились к нижнему регистру.

4.18.0

04.01.2026

ТипОписание
ДоработаноВыполнено техническое обновление
ДоработаноУлучшена поддержка версии PHP выше 8.1

Релизы: 2024

4.17.0

30.06.2024

ТипОписание
ДоработаноДобавлена поддержка отключения передачи данных ответа при использовании json(). Например: response()->json(null, 404).
ДоработаноДобавлена проверка существования пути при установке пути к собственным картам роутов
ДоработаноДобавлена возможность дополнять заголовок Access-Control-Allow-Headers. Смотрите раздел: Безопасность - Фильтры.

4.16.0

02.03.2024

ТипОписание
ДоработаноУлучшено определение кастомных заголовков Content-Type (+json) при выполнении запросов к модулю

Релизы: 2023

4.15.0

18.11.2023

ТипОписание
ДоработаноДобавлена возможность указывать кастомные заголовки Content-Type (+json) при выполнении запросов к модулю. Например: Content-Type: application/vnd.eda.picker.errors.v1+json или application/problem+json, и так далее. Подробнее: Media Types.
ДоработаноДобавлена возможность передачи собственного ID клиента в функцию journal()->add()
ДоработаноДобавлены функции-полифилы для корректной работы модуля на версии PHP меньше 8.0: str_contains, str_starts_with, str_ends_with

4.14.0

22.07.2023

ТипОписание
ДоработаноДобавлена возможность указывать собственный заголовок Content-Type при ответе клиенту. Внимание: при проверке используется функция str_contains, которая доступна только с версии PHP 8.0.

4.13.2

31.05.2023

ТипОписание
ДоработаноУлучшена совместимость с PHP 8 и выше

4.13.1

19.05.2023

ТипОписание
ДоработаноОбновлена ссылка на документацию к модулю

4.13.0

05.05.2023

ТипОписание
ДоработаноПоправлена логика проверки входных параметров

4.12.0

22.02.2023

ТипОписание
ДоработаноУлучшена совместимость с PHP 8 и выше

4.11.0

13.01.2023

ТипОписание
ДоработаноУлучшена совместимость с PHP 8 и выше

Релизы: 2022

4.10.0

30.08.2022

ТипОписание
ДоработаноНа уровне ядра добавлен заголовок Access-Control-Allow-Credentials со значением true
ДоработаноОтключена проверка модуля безопасности на фишинг при редиректе на страницу документации из административного раздела

4.9.0

02.08.2022

ТипОписание
ДоработаноДоработана вёрстка Монитора поддержки
ИсправленоВыполнены рефакторинг и оптимизация
ДоработаноРабота с журналом Входящие запросы переведена на штатное ORM
ДоработаноПовышена производительность Монитора поддержки

Релизы: 2021

4.8.1

19.07.2021

ТипОписание
ДоработаноДобавлена обратная совместимость для старых версий модуля, где еще отсутствует класс Password с методом equals()
ИсправленоВыполнены мелкие правки

4.8.0

03.07.2021

ТипОписание
ДоработаноВ новых версиях главного модуля, поле PASSWORD объявлено приватным. Поэтому, при авторизаци по логину и паролю, могли наблюдаться проблемы.
ИсправленоВыполнены незначительные улучшения

4.7.0

02.06.2021

ТипОписание
ДоработаноТеперь учитывается формат даты и времени для не RU локализаций
ДоработаноВыполнены мелкие правки и рефакторинг
ИсправленоИсправлена кодировка копирайта в заголовке ответа

Релизы: 2020

4.6.0

19.12.2020

ТипОписание
ДоработаноДобавлена возможность выбора сайтов, на которых необходимо запускать модуль
ДоработаноУлучшена работа модуля в режиме многосайтовости
ДоработаноДобавлено игнорирование всех запросов, которые выполняются на адрес /bitrix/

4.5.0

03.12.2020

ТипОписание
ДоработаноДоработана авторизация по логину и паролю. Теперь проверка пароля выполняется с помощью метода Bitrix\Main\Security\Password::equals().
ДоработаноВ связи с устаревшим, начиная с версии PHP 7.2.0, функционалом механизма перегрузки функций (mbstring.func_overload), и отказом от использования его в платформе, строковые функции модуля были переведны в многобайтовый режим работы
ДоработаноТеперь резервная копия файла init.php создаётся до установки и до удаления модуля. Ранее копия создавалась лишь при установке модуля.
ДоработаноВыполнены незначительные технические изменения
ИсправленоИсправлена проблема при подключении модуля в файле init.php, если файл имелся в директории, но был абсолютно пустым

4.4.0

17.10.2020

ТипОписание
ДобавленоДобавлен класс Artamonov\Rest\Foundation\Token. Теперь можно генерировать токены пользователей с помощью данного класса, при любой необходимости. Класс поддерживает как генерацию токенов, так и другие действия. Генерация токенов возможна для списка пользователей, плюс поддерживаются параметры ($parameters) от метода UserTable::getList(). Для удобства добавлена функция token(). Подробнее смотрите в документации.
ДобавленоВ раздел Безопасность добавлено пошаговое создание и обновление токенов для пользователей. Полезная функция, если в базе сайта зарегистрировано большое количество пользователей.
ДоработаноДоработана авторизация по логину и паролю
ДоработаноФункция возврата ответа клиенту: response()->json(). Теперь в данную функцию можно передавать значения заголовков не только в виде строки, но и в виде массива. В котором могут быть указаны дополнительные параметры для заголовка (в соответствии с функцией header($header, $replace, $http_response_code)). Подробнее смотрите в роуте-примере (example).
ДоработаноВыполнены незначительные технические изменения

4.3.1

18.09.2020

ТипОписание
ДоработаноВыполнено техническое обновление

4.3.0

11.09.2020

ТипОписание
ИсправленоИсправлена проблема, возникающая после истечения демонстрационного периода

4.2.0

06.09.2020

ТипОписание
ДобавленоДобавлен параметр для регулирования глобальной проверки сроков годности токенов. Внимание: по умолчанию данный параметр отключен. Подробнее в разделе Безопасность.
ДобавленоДобавлена автогенерация токена при добавлении нового пользователя. Подробнее в разделе Безопасность.
ДобавленоДобавлены сообщения, возвращаемые клиенту при возникновении ошибок на этапе запуска интерфейса
ДоработаноМетод получения параметров модуля из базы. Теперь получаемые параметры кэшируются. Время кэширования зависит от настроек параметра cache_flags в файле /bitrix/.settings.php.
ДоработаноМетод получения данных пользователя, если была активна авторизация для роута. Теперь метод умеет десериализовывать данные в пользовательских полях.
ДоработаноКлюч карты роутов example был добавлен в роуте {api}/docs
ИсправленоЕсли в карте роутов отсутствует какой-либо контроллер (файл или класс), тогда в документации будет выведено сообщение об этом

4.1.0

10.08.2020

ТипОписание
ДобавленоДобавлена проверка многоуровневых параметров при передаче запроса. Подробнее структуру карты можно посмотреть в документации к модулю.
ДобавленоДобавлена поддержка разделителя параметров в документации карты роутов - для лучшего визуального представления списка параметров. Подробнее структуру карты можно посмотреть в примере карты роутов.
ДобавленоТеперь числа переданные в виде строки, будут автоматически преобразованы в нужный тип, при проверке входящих параметров. Поддерживаемые типы для преобразования: integer, float.
ДоработаноРаздел документации с картой роутов - теперь поддерживается отображение неограниченного количества уровней параметров роута
ДоработаноПри проверке параметра на integer, в опции max_range теперь используется константа PHP_INT_MAX

4.0.2

07.07.2020

ТипОписание
ИсправленоИсправлена вёрстка в разделе Документация - Карта роутов

4.0.1

22.05.2020

ТипОписание
ИсправленоИсправлена проверка типа входящих параметров

4.0.0

22.04.2020

ТипОписание
ДобавленоДобавлена настройка видимости меню модуля в общем меню админ. раздела
ДобавленоДобавлен нативный роут {{api}}/provider. Роут является провайдером к внутреннему апи платформы 1С-Битрикс. Поддерживает get и post запросы. Подробнее про использование роута можно узнать в документации.

3.5.0

15.01.2020

ТипОписание
ДобавленоВ Helper модуля добавлен метод isBool
ДоработаноВыполнено техническое обновление

Релизы: 2019

3.4.0

26.10.2019

ТипОписание
ДобавленоДобавлена возможность использовать переменные в роутах. Теперь в карте роутов можно указывать шаблон строки с использованием переменных. Например: /example/check/section/{{sectionId}}/{{productId}}/view/. Значения переменных sectionId и productId можно будет получить так же через request()->get(). Примеры шаблонов строк можно посмотреть в документации по картам роутов.
ДобавленоДобавлены константы, отключающие сбор статистики, проверки агентов и другие операции
ИсправленоВыполнены мелкие правки по дизайну модуля в админ.разделе
ИсправленоВыполнены мелкие правки по коду

3.3.2

31.08.2019

ТипОписание
ИсправленоРешена проблема отображения роутов в документации, если контроллеры роутов были прописаны через путь к файлу, а не через неймспейс

3.3.1

30.07.2019

ТипОписание
ИсправленоРешена проблема отображения технического сообщения на страницах Настройки и Безопасность при активации режима «Установка для разработки»

3.3.0

24.06.2019

ТипОписание
ДоработаноОтложенный запуск интерфейса. Теперь можно регулировать момент запуска модуля с помощью параметра в Настройках. Стало возможным запускать модуль либо при старте init.php (1.5), либо перед запуском визуальной части, в событии OnProlog (1.15). Подробнее: Порядок выполнения страниц.
ОбновленоОбновлена документация

3.2.0

07.05.2019

ТипОписание
ДоработаноВыполнено техническое обновление

3.1.0

16.02.2019

ТипОписание
ДоработаноДоработана документация по модулю
ДоработаноВыполнены мелкие улучшения
ИзмененоДля большего удобства документация по модулю вынесена на сторонний ресурс

3.0.0

15.02.2019

ТипОписание
ДоработаноДоработан метод создания таблиц журналов
ИсправленоИсправлены языковые фразы

2.9.3

09.02.2019

ТипОписание
ИсправленоИсправлена выборка данных по дате в журнале Входящие запросы
ИсправленоИсправлена ошибка, возникающая в случае удаления таблиц при удалении модуля

2.9.2

09.02.2019

ТипОписание
ИсправленоИсправлена логика внутренних функций

2.9.1

09.02.2019

ТипОписание
ИсправленоИсправлены незначительные ошибки

2.9.0

09.02.2019

ТипОписание
ДоработаноЕсли роут отключен, тогда он будет исключен из документации в публичной части (см. описание версии 2.5.0)
ДоработаноВыполнены оптимизация и увеличение производительности
ИсправленоТеперь функции модуля не доступны из публичной части сайта

2.8.0

08.02.2019

ТипОписание
ДобавленоВ Журнал Запрос/Ответ добавлено поле Метод, а также добавлен фильтр по данному полю
ДобавленоПри авторизации через логин и пароль теперь еще происходит проверка на наличие $_SERVER['PHP_AUTH_USER'] и $_SERVER['PHP_AUTH_PW'], для поддержки HTTP Authorization
ДобавленоПри несовпадении типа контента запроса с настройками роута, теперь возвращается название типа контента, который необходим при запросе
ДобавленоЕсли запрос производится с участием авторизации, через токен или логин/пароль, тогда в параметры запроса будет добавлена информация о пользователе, которому принадлежат авторизационные данные. Данные пользователя сохраняются в ключ _user. Напоминание: в контроллере, параметры входящего запроса, можно получить с помощью функции request()->get().
ДоработаноПри отключении нативных роутов они деактивируются и в документации
ДоработаноДобавлен индикатор активности нативных роутов в раздел Поддержка
ДоработаноРасширена поддержка типов контента при запросе. Например, ранее, метод PUT или DELETE поддерживали только application/json, теперь поддерживают и application/x-www-form-urlencoded, и другие. Напоминание: не забывайте указывать/ограничивать тип контента запроса через карту роутов, с помощью ключа contentType.
ДоработаноРасширена поддержка типов запросов: HEAD, PATCH
ДоработаноВыполнены незначительные исправления
ИзмененоЖурнал Запрос/Ответ переименован во Входящие запросы
ИзмененоАктуализирована документация по модулю
УдаленоУдалено описание модуля из раздела Документация - Основные сведения

2.7.0

01.02.2019

ТипОписание
ДобавленоДобавлен нативный роут для получения ID пользователя по логину или токену. При запросе требуется авторизация по токену. Уточнение: любой роут может быть перекрыт через собственную карту роутов. То есть, если нативный роут вам чем-то не подходит, то вы можете скопировать его в собственную карту и модифицировать под необходимую логику.
ДобавленоДобавлена возможность включать/отключать использование нативных роутов
ДобавленоДобавлена возможность указывать путь к собственным картам роутов. Теперь, нет необходимости хранить рабочие файлы в папке модуля. А именно, карты роутов и контроллеры. Напоминаем о том, что контроллером для роута может выступать, как класс доступный по неймспейсу, так и обычный скрипт. Которые могут располагаться за пределами директории модуля.
ДобавленоДобавлены папки lang для языков: en, de, fr. Внимание, все фразы имеют русский перевод. Папки добавлены для корректной работы модуля на мультиязычных сайтах.
ИзмененоНазвания входящих заголовков теперь приводятся к нижнему регистру

2.6.0

13.01.2019

ТипОписание
ДоработаноДобавлен параметр Срок годности токена. Теперь можно указывать срок годности токена при его генерации.
ДоработаноВ карте роутов, в секции security, в ключ token, добавлен ключ checkExpire, регулирующий необходимость проверки срока годности токена, при авторизации через токен
ИзмененоВ карте роутов, в секции security, ключ authType переименован в type, и перенесен в ключ auth

2.5.0

13.01.2019

ТипОписание
ДоработаноДобавлен встроенный роут /{api}/docs для получения документации в публичной части. Теперь клиенты могут получать автоматически генерируемую документацию в JSON-формате, которая создается на основе карт роутов.
ИзмененоПапка {module_id}/lib/controllers/example/ удалена, а класс Example перенесен в {module_id}/lib/controllers/native/

2.4.0

12.01.2019

ТипОписание
ДоработаноДобавлена возможность управлять CORS (кросс-доменными запросами) из административного раздела сайта

2.3.0

12.01.2019

ТипОписание
ИсправленоВернули поддержку файлового режима работы. Теперь в карте роута, вместо контроллера, можно указать путь к php-скрипту. Подробнее смотрите в карте-примере: /routes/_example.php.

2.2.0

12.01.2019

ТипОписание
ДоработаноФункция json_encode заменена на Bitrix\Main\Web\Json::encode для принудительного кодирования ответа в utf-8
ДоработаноЗаголовки модуля отсылаются только в том случае, если был запущен интерфейс
ДоработаноДобавлена возможность авторизации по логину/паролю. Тип авторизации настраивается в карте роута - ключ authType - подробнее смотрите в карте-примере: /routes/_example.php.
ДоработаноВсе настройки и функционал присущий авторизации через токен, так же действует и для авторизации через логин/пароль
ИсправленоВ карте роутов, в секции security, убран ключ required

2.1.1

11.01.2019

ТипОписание
ДоработаноДобавлен принудительный перевод в нижний регистр названия класса при его автоматическом подключении

2.1.0

10.01.2019

ТипОписание
ДоработаноВ карту роутов, в секцию security, добавлен ключ required, который указывает на необходимость активации параметра Авторизация по токену. Подробнее смотрите в карте-примере: /routes/_example.php.

2.0.0

05.01.2019

ТипОписание
ДоработаноОтключено использование функции GetModuleID, так как из-за неё возникала проблема в работе модуля на windows-серверах, в виду разности разделителей директорий (/, \). Проблема описана в Отзыве.
ДоработаноУвеличен размер поля IP в таблице artamonov_rest_request_response. Для избежания проблемы, когда запросы посылаются из REST-клиентов.
ДоработаноДобавлены роуты для работы с токенами (создание, получение, удаление)
ДоработаноДобавлены роуты для работы с пользователями (создание, получение, обновление, удаление)
ДоработаноВыполнены небольшая оптимизация и ускорение работы ядра

Релизы: 2018

1.2.0

11.11.2018

ТипОписание
ДоработаноДобавлена возможность передавать сообщение при ответе badRequest, internalServerError
ДоработаноДобавлена валидация входящих параметров при запросе. Происходит проверка на наличие параметра в запросе, а также на соответствие типу. Валидация параметров реализована на два уровня. Поддерживаемые типы параметров при валидации: string, integer, float, email, ip, domain, url. Подробнее смотрите в карте роутов.
ДоработаноДобавлены человеко-понятные ответы при неудачных запросах типа badRequest
ИсправленоИсправлена проблема при получении GET-параметров при запросах типа PUT и DELETE
ИсправленоИсправлена проблема при получении заголовков запроса на Nginx (без Apache)
ИсправленоИсправлены стили модуля в административном разделе сайта

1.1.0

24.10.2018

ТипОписание
ДоработаноДобавлено условие при установке кэша для избежания получения Исключения
ДоработаноДобавлен параметр в разделе Настройки для включения/отключения тестового роута - http|https://{domain}/{api}/example/check
ДоработаноВ карте роутов добавлен ключ possibleValue, для указания возможных значений параметра запроса. Подробнее смотрите в карте роутов.
ДоработаноВ карте роутов добавлена возможность добавлять пример ответа на запрос. Подробнее смотрите в карте роутов.
ДоработаноВ карте роутов добавлена возможность исключать описание роута. Подробнее смотрите в карте роутов.
ДоработаноДобавлен вывод JSON в журнале Запрос/Ответ
ИсправленоИсправлены языковые фразы

1.0.2

11.10.2018

ТипОписание
ИсправленоИсправлены параметры, необходимые для работы демо-режима

1.0.1

08.09.2018

ТипОписание
ИсправленоИсправлена работа CORS-запросов
ИсправленоИсправлены интерфейсные ошибки