Данный класс содержит методы для работы с методами и параметрами REST API.
Объект SimpleRestRequest
Используйте метод sws.restRequestV1, как описано в примере ниже, чтобы создать объект SimpleRestRequest.
Параметры:
Название | Тип | Обязательный | Значение по умолчанию |
---|---|---|---|
requestName | String | Нет | '' |
methodName | String | Нет | '' |
Укажите значения параметров, как показано ниже:
Параметр | Значение |
---|---|
requestName | Укажите значение поля Наименование из записи в таблице Запросы REST (sys_rest_requests). |
methodName | Укажите значение поля Наименование из записи в таблице Методы REST (sys_rest_request_method), относящейся к этому запросу. |
Возвращаемое значение:
Тип | Описание |
---|---|
SimpleRestRequest object | Метод возвращает объект SimpleRestRequest, созданный при помощи переданного запроса. В случае ошибки метод возвращает пустой объект SimpleRestRequest. |
Пример:
/* Создайте запрос 'Telegram' в таблице Запросы REST (sys_rest_request) и метод 'Send Message' в таблице Методы REST (sys_rest_request_method), связанной с запросом 'Telegram'. Также создайте параметры 'chat_id' и 'text' в таблице Параметры методов REST (sys_rest_request_method_param), связанные с методом 'Send Message' */ const request = sws.restRequestV1('Telegram', 'Send Message'); request.setStringParameter('chat_id', '123456789'); request.setStringParameter('text', 'telegram'); const response = request.execute(); // ИЛИ const request = sws.restRequestV1(); request.setRequestUrl('https://api.telegram.org/bot1860462740:AAHyP6BMH2Mh-cXezrTVu2sJUoNYvimMRMQ/sendMessage'); request.setQueryParameter('chat_id', '123456789'); request.setQueryParameter('text', 'telegram'); const response = request.execute();
addFileContent(content, paramName, fileName)
Используйте данный метод для подготовки файла в двоичном формате и его последующей отправки в запросе.
Параметры:
Название | Тип | Обязательный | Значение по умолчанию | Описание |
---|---|---|---|---|
content | String | Да | Нет | Данные двоичного файла в кодировке base64. |
paramName | String | Да | Нет | Название параметра в запросе POST, который передает двоичные данные. |
fileName | String | Да | Нет | Название файла. |
В один запрос можно добавить несколько файлов. В этом случае название параметра запроса POST должно представлять собой массив элементов. Например, если используется только один файл, параметр может называться files. Если используются два файла, их следует называть files[1] и files[2].
Возвращаемое значение:
Тип | Описание |
---|---|
Void | Метод не возвращает значение. |
Примеры:
const request = sws.restRequestV1(); request.setRequestUrl('https://instance.example1.com/some/service'); // URL откуда загрузить файлы const downloadResponse = request.execute(); request.setRequestUrl('https://instance.example2.com/v1/attachments/upload/task/165469349718887155'); // URL, куда загрузить файлы request.addFileContent(downloadResponse.getContentBase64(), 'files[1]', 'file.png'); request.addFileContent(downloadResponse.getContentBase64(), 'files[2]', 'file2.png'); const uploadResponse = request.execute();
const request = sws.restRequestV1(); request.setRequestUrl('https://instance.example1.com/some/service'); // URL откуда загрузить файл const downloadResponse = request.execute(); request.setRequestUrl('https://instance.example2.com/v1/attachments/upload/task/165469349718887155'); // URL, куда загрузить файл request.addFileContent(downloadResponse.getContentBase64(), 'files', 'file.mp3'); const uploadResponse = request.execute();
execute()
Используйте данный метод для отправки запроса REST.
Возвращаемое значение:
Тип | Описание |
---|---|
SimpleRestResponse object | Метод возвращает значение объекта SimpleRestResponse. |
Пример:
const request = sws.restRequestV1(); request.setRequestUrl(`https://jsonplaceholder.typicode.com/todos/1`); request.setRequestMethod('GET'); const response = request.execute();
setBasicAuth(userName, userPassword)
Используйте этот метод, чтобы задать имя пользователя и пароль для авторизации в веб-службе, если выбран базовый тип авторизации.
Параметры:
Название | Тип | Обязательный | Значение по умолчанию |
---|---|---|---|
userName | String | Да | Нет |
userPassword | String | Да | Нет |
Возвращаемое значение:
Тип | Описание |
---|---|
Void | Метод не возвращает значение. |
Пример:
const scriptJSON = { 'script': 'ss.info(new SimpleDateTime().getValue())' } const request = sws.restRequestV1(); request.setRequestUrl(ss.getProperty('simple.instance.uri') + '/v1/ajax-script/run'); request.setRequestMethod('POST'); request.setBasicAuth('admin', 'password'); request.setRequestHeader('Content-type', 'application/json'); request.setRequestBody(JSON.stringify(scriptJSON)); const response = request.execute(); ss.info(response.getBody()); // Информация: {"messages":[],"status":"OK","data":{"result":null,"info":"Info: 20...
Фрагмент кода ниже демонстрирует, как получить токен авторизации с логином и паролем пользователя. В коде используются примеры данных для метода setRequestUrl(requestUrl) и константы payload. Замените его реальными данными перед использованием.
const request = sws.restRequestV1(); request.setRequestUrl('https://instance.example.com/v1/auth/login'); request.setRequestMethod('POST'); request.setRequestHeader('Content-type', 'application/json'); const payload = { 'username': 'admin', 'password': 'qwerty123456' } request.setRequestBody(JSON.stringify(payload)); const response = request.execute(); ss.info(JSON.parse(response.getBody()).data.auth_key); // Информация: 5WvOT9Ejlxd6Gb8bkCWMtG3XXMYcoDDJ
setRequestUrl(requestUrl)
Используйте данный метод, чтобы задать URL-адрес запроса. Чтобы получить URL-адрес запроса, используйте метод getRequestUrl().
Параметры:
Название | Тип | Обязательный | Значение по умолчанию |
---|---|---|---|
requestUrl | String | Да | Нет |
Возвращаемое значение:
Тип | Описание |
---|---|
Void | Метод не возвращает значение. |
Пример:
const request = sws.restRequestV1(); request.setRequestUrl('https://instance.example.com/v1/ajax-script/run'); ss.info(request.getRequestUrl()); // Информация: https://instance.example.com/v1/ajax-script/run
setRequestMethod(methodName)
Используйте данный метод, чтобы задать метод запроса (GET, POST, PURGE и пр.) Укажите название метода в параметре methodName. Для того чтобы получить название метода, используйте метод getRequestMethod().
Параметры:
Название | Тип | Обязательный | Значение по умолчанию |
---|---|---|---|
methodName | String | Да | Нет |
Возвращаемое значение:
Тип | Описание |
---|---|
Void | Метод не возвращает значение. |
Пример:
const request = sws.restRequestV1(); request.setRequestUrl('https://instance.example.com/v1/ajax-script/run'); request.setRequestMethod('POST'); ss.info(request.getRequestUrl()); ss.info(request.getRequestMethod()); // Информация: https://instance.example.com/v1/ajax-script/run // Информация: POST
setRequestTimeout(timeout)
Используйте метод, чтобы устанавить время ожидания ответа запроса в секундах.
Параметры:
Название | Тип | Обязательный | Значение по умолчанию |
---|---|---|---|
timeout | Integer | Да | Нет |
Возвращаемое значение:
Тип | Описание |
---|---|
Void | Метод не возвращает значение. |
Пример:
const request = sws.restRequestV1(); request.setRequestUrl('https://instance.example.com/v1/ajax-script/run'); request.setRequestMethod('GET'); request.setRequestTimeout(60); const response = request.execute();
setQueryParameter(name, value)
Используйте этот метод, чтобы добавить параметр в конец URL запроса, сгенерированного как "name=value".
Параметры:
Название | Тип | Обязательный | Значение по умолчанию |
---|---|---|---|
name | String | Да | Нет |
value | String | Да | Нет |
Возвращаемое значение:
Тип | Описание |
---|---|
Void | Метод не возвращает значение. |
Пример:
const request = sws.restRequestV1(); request.setRequestUrl('https://instance.example.com/rest/v1/table/user'); request.setRequestMethod('GET'); request.setRequestHeader('Authorization', 'Bearer ' + new SimpleUser().getAccessToken()); request.setQueryParameter('sysparm_query', 'active=true^emailLIKEyours^ORDERBYDESCcompany'); const url = request.getRequestUrl(); ss.info(url); // Информация: https://instance.example.com/rest/v1/table/user?sysparm_query=active%3Dtrue%5EemailLIKEyours%5EORDERBYDESCcompany
setRequestBody(body)
Используйте этот метод, чтобы задать тело запроса при использовании методов PUT или POST. Чтобы получить тело запроса, используйте метод GET.
Параметры:
Название | Тип | Обязательный | Значение по умолчанию |
---|---|---|---|
body | String | Да | Нет |
Возвращаемое значение:
Тип | Описание |
---|---|
Void | Метод не возвращает значение. |
Пример:
const recordURL = ss.getProperty('simple.instance.uri') + '/record/' + current.getTableName() + '/' + current.sys_id; const dataJSON = { 'text': `Новый запрос назначен на команду DevOps <${recordURL}|View Request>` }; const request = sws.restRequestV1('DevOps Team Request', 'send_message_to_channel'); request.setRequestBody(JSON.stringify(dataJSON)); const response = request.execute();
setStringParameter(name, value)
Используйте этот метод, чтобы установить переменную запроса с именем, указанным в name, в значение, указанное в value.
Параметры:
Название | Тип | Обязательный | Значение по умолчанию |
---|---|---|---|
name | String | Да | Нет |
value | String | Да | Нет |
Возвращаемое значение:
Тип | Описание |
---|---|
Void | Метод не возвращает значение. |
Пример:
/* Создайте запрос 'Telegram' в таблице Запросы REST (sys_rest_request) и метод 'Send Message' в таблице Методы REST (sys_rest_request_method), связанной с запросом 'Telegram'. Также создайте параметры 'chat_id' и 'text' в таблице Параметры методов REST (sys_rest_request_method_param), связанные с методом 'Send Message' */ const request = sws.restRequestV1('Telegram', 'Send Message'); request.setStringParameter('chat_id', '123456789'); request.setStringParameter('text', 'telegram'); const response = request.execute();
setRequestHeader(name, value)
Используйте данный метод, чтобы установить заголовок HTTP в запросе с указанным значением. Чтобы получить заголовки запроса, используйте метод getRequestHeaders().
Параметры:
Название | Тип | Обязательный | Значение по умолчанию |
---|---|---|---|
name | String | Да | Нет |
value | String | Да | Нет |
Возвращаемое значение:
Тип | Описание |
---|---|
Void | Метод не возвращает значение. |
Пример:
const scriptJSON = { 'script': 'ss.info(new SimpleDateTime().getValue())' } const request = sws.restRequestV1(); request.setRequestUrl('https://instance.example.com/v1/ajax-script/run'); request.setRequestMethod('POST'); request.setBasicAuth('username', 'password'); request.setRequestBody(JSON.stringify(scriptJSON)); request.setRequestHeader('Content-type', 'application/json'); const response = request.execute();
getRequestUrl()
Используйте этот метод, чтобы получить URL-адрес запроса с параметрами. Чтобы установить URL-адрес запроса, используйте метод setRequestUrl(requestUrl).
Возвращаемое значение:
Тип | Описание |
---|---|
String | Метод возвращает URL-адрес запроса. |
Пример:
const request = sws.restRequestV1(); request.setRequestUrl(ss.getProperty('simple.instance.uri') + '/v1/ajax-script/run'); const url = request.getRequestUrl(); ss.info(url); // Информация: https://your-instance-url/v1/ajax-script/run
getRequestBody()
Используйте этот метод, чтобы получить тело запроса. Чтобы установить тело запроса, используйте метод setRequestBody(body).
Возвращаемое значение:
Тип | Описание |
---|---|
String | Метод возвращает тело запроса. |
Пример:
const recordURL = ss.getProperty('simple.instance.uri') + '/record/' + current.getTableName() + '/' + current.sys_id; const dataJSON = { 'text': `Новый запрос назначен на команду DevOps <${recordURL}|Показать запрос>` }; const request = sws.restRequestV1('DevOps Team Request', 'send_message_to_channel'); request.setRequestBody(JSON.stringify(dataJSON)); request.execute(); const body = request.getRequestBody(); ss.info(body); //Информация: {"text":"Новый запрос назначен на команду DevOps <https://your-instance-url.simpleone.ru\/record\/task\/161123123123123123|View Request>"}
getRequestHeaders()
Используйте этот метод, чтобы получить все заголовки запроса. Чтобы установить заголовки запроса, используйте метод setRequestHeader(name, value).
Возвращаемое значение:
Тип | Описание |
---|---|
Object | Метод возвращает объекты заголовков запроса. Ключи – это названия заголовков, а значения - массивы значений заголовков. |
Пример:
const request = sws.restRequestV1(); request.setRequestHeader('Content-type', 'application/json'); const header = request.getRequestHeaders(); ss.info(header); // Информация: {"content-type":["application\/json"]}
getRequestMethod()
Используйте этот метод, чтобы вернуть метод запроса. Чтобы установить метод запроса, используйте setRequestMethod(methodName).
Возвращаемое значение:
Тип | Описание |
---|---|
String | Метод возвращает название метода. |
Пример:
const request = sws.restRequestV1(); request.setRequestMethod('GET'); const method = request.getRequestMethod(); ss.info(method); //Информация: GET
useHttp2(value)
Используйте этот метод, чтобы сделать протокол HTTP/2 обязательным.
При использовании этого метода необходимо, чтобы хост поддерживал протокол HTTP/2.
Параметры:
Название | Тип | Обязательный | Значение по умолчанию |
---|---|---|---|
value | Boolean | Нет | true |
Возвращаемое значение:
Тип | Описание |
---|---|
Void | Метод не возвращает значение. |
Пример:
const request = sws.restRequestV1(); request.setRequestUrl('https://http2.pro/api/v1'); request.setRequestMethod('GET'); request.useHttp2(); const response = request.execute();
Чтобы отключить использование HTTP/2, необходимо вызвать метод, передав параметр false.
request.useHttp2(false);
- No labels