Перейти к основному содержимому
Версия: 1.26.0

Переменные запросов REST

В системе реализован механизм динамических переменных, которые автоматически подставляются в запросы REST-клиента, инициированные серверными скриптами.

Для использования этого механизма необходимо создать скрипт, который будет запускать REST запрос с подставленными значениями переменных.

Вы можете обратиться к уже созданному REST запросу, указав ссылку, или создать новый запрос в текущем скрипте.

В таблице Переменные запросов REST (sys_rest_request_variable) содержатся зашифрованные (AES-256) и незашифрованные записи переменных, которые используются в запросах REST и подставляются в скрипт динамически. Зашифрованные переменные, используемые для хранения ключей и секретов, расшифровываются при добавлении в запрос.

Используйте переменные в формате {param} в URL, а также теле и заголовке запроса.

Чтобы использовать переменные, выполните следующие действия:

  1. Создайте запрос REST, также вы можете воспользоваться методами SimpleRestRequest в шаге 2.

    Должны быть указаны:

    • Имя запроса REST
    • URL конечной точки, для которого формируется запрос
    • Тип доступа
    • Тип авторизации
    • Профиль аутентификации, если этого требует интеграция с сервисом
    • Заголовки запроса REST
    • Методы запроса REST. При необходимости вы также можете указать соответствующие параметры методов запроса.
  2. Запуск серверного скрипта, который содержит REST запрос.

    • В скрипт передается ссылка на предварительно сформированный REST запрос или в нем переопределяются необходимые методы объекта SimpleRestRequest.
    • В конце скрипта запускается метод execute().
    • Значения из переменных подставляются в запрос, предварительно расшифровываясь, если такая опция была активирована на их формах.
    • Запрос отправляется на хост с расшифрованными значениями переменных.
  3. Настройте запуск серверного скрипта при помощи бизнес-правила.

внимание
  • При передаче в скрипт, наименование будет переведено в нижний регистр. Поэтому при создании записи задавайте уникальные регистронезависимые наименования параметров.

Используйте в наименовании латинские буквы, цифры [0..9], пробел и символ подчеркивания ( _ ).

  • При передаче в хедер, значение будет преобразовываться в соответствии с набором правил:

    1. Имя заголовка преобразуется в нижний регистр.
    2. Пробелы заменяются на дефисы.
    3. Первая буква имени и каждая буква, следующая за дефисом, преобразуются в буквы верхнего регистра.

    Пример: incident callerIncident-Caller

Поля формы Переменные запросов REST

ПолеОбязательноОписание
НаименованиеДаУкажите название переменной. Наименование должно быть уникальными и регистронезависимым.
ЗначениеНетУкажите значение переменной. Это значение будет передаваться в запросы REST, если флажок Зашифрованное снят. Длина переменной не может превышать 256 бит.
Зашифрованное значениеНетУкажите значение, которое после сохранения записи будет зашифровано с использованием алгоритма AES-256. Это значение будет передаваться в запросы REST, если флажок Зашифрованное установлен.
ЗашифрованноеНетУстановите флажок, чтобы передавать значение параметра, указанного в поле Зашифрованное значение.
внимание

Система передает значение шифрованного пароля, только если были заполнены оба поля: Значение и Зашифрованное значение.

Создание переменной запросов


Чтобы создать новую переменную запросов REST, выполните следующие шаги:

  1. Перейдите на запись таблицы Переменные запросов REST, расположенной по адресу ({URL вашего экземпляра}/list/sys_rest_request_variable).
  2. Нажмите Создать и заполните поля формы.
  3. Нажмите Сохранить или Сохранить и выйти, чтобы применить изменения.

Проверка работоспособности

Для тестирования рекомендуется использовать:

Подробнее о типах запросов читайте в статье Настройки REST API.

  1. Создайте две записи переменных, как описано в инструкции выше. Назовите их следующим образом:

    1. test1 – незашифрованная переменная.
    2. test2 – зашифрованная переменная.
  2. Перейдите в навигаторе в Настройка системыСерверные скрипты.

  3. Создайте запись запроса, как в примере ниже.

Пример использования запросов с переменными

const scriptJSON = {
'script': 'ss.info(new SimpleDateTime().getValue()); ss.info("{test}");'
}


const request = sws.restRequestV1();
request.setRequestUrl('https://postman-echo.com/post?bot1860462740:{test2}/sendMessage');
request.setQueryParameter('chat_id', '{test1}');
request.setQueryParameter('text', 'telegram {test2}');

request.setRequestMethod('POST');

request.setRequestBody(JSON.stringify(scriptJSON));

request.setRequestHeader('Test-header', 'a-{test2}-b-{test1}');
const response = request.execute();

ss.info(response.getBody());