Используйте этот Данный класс содержит методы для работы с методами и параметрами REST API.
Объект SimpleRestRequest
(requestName, methodName)
Этот метод предназначен для создания объекта, используемого в запросах REST. При использовании метода создается объект с префиксом sws (см. пояснение в примере кода ниже)Используйте метод sws.restRequestV1, как описано в примере ниже, чтобы создать объект SimpleRestRequest.
Параметры:
Название | Тип | Обязательный | Значение по умолчанию |
---|
requestName | String | Нет |
НетНет
Info |
---|
Укажите значения параметров, как показано ниже: Параметр | Значение |
---|
requestName | Укажите значение поля Наименование из записи в таблице Запросы REST (sys_rest_requests). | methodName | Укажите значение поля Наименование из записи в таблице Методы REST (sys_rest_request_method), относящейся к этому запросу. |
|
Возвращаемое значение:
Тип | Описание |
---|
SimpleRestRequest object |
Этот метод Метод возвращает объект SimpleRestRequest, созданный при помощи переданного запроса. В случае ошибки метод возвращает пустой |
объект объект SimpleRestRequest. |
Пример:
Code Block |
---|
language | js |
---|
theme | Eclipse |
---|
title | SimpleRestRequestApiСоздание объекта SimpleRestRequest |
---|
linenumbers | true |
---|
|
/* CreateСоздайте theзапрос 'Telegram' в requestтаблице inЗапросы REST Requests (sys_rest_requestsrequest) table
andи theметод 'Send Message' в methodтаблице inМетоды REST Request Methods (sys_rest_request_method), tableсвязанной relatedс withзапросом 'Telegram' request.
AlsoТакже создайте createпараметры 'chat_id' andи 'text' в Restтаблице RequestПараметры Methodметодов ParamREST (sys_rest_request_method_param), связанные relatedс withметодом 'Send Message' method
*/
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 | Да | Нет | Название файла. |
Info |
---|
В один запрос можно добавить несколько файлов. В этом случае название параметра запроса POST должно представлять собой массив элементов. Например, если используется только один файл, параметр может называться files. Если используются два файла, их следует называть files[1] и files[2]. |
Возвращаемое значение:
Тип | Описание |
---|
Void | Данный метод Метод не возвращает значение. |
Примеры:
Code Block |
---|
language | js |
---|
theme | Eclipse |
---|
title | Adding two filesДобавление двух файлов |
---|
linenumbers | true |
---|
|
const request = sws.restRequestV1();
request.setRequestUrl('https://instance.example1.com/some/service'); //the URL from which the files are downloaded // URL откуда загрузить файлы
const downloadResponse = request.execute();
request.setRequestUrl('https://instance.example2.com/v1/attachments/upload/task/165469349718887155'); // the URL, onкуда which the files are uploadedзагрузить файлы
request.addFileContent(downloadResponse.getContentBase64(), 'files[1]', 'file.png');
request.addFileContent(downloadResponse.getContentBase64(), 'files[2]', 'file2.png');
const uploadResponse = request.execute(); |
Code Block |
---|
language | js |
---|
theme | Eclipse |
---|
title | Adding one fileДобавление одного файла |
---|
linenumbers | true |
---|
|
const request = sws.restRequestV1();
request.setRequestUrl('https://instance.example1.com/some/service'); //the URL fromоткуда which the file is downloadedзагрузить файл
const downloadResponse = request.execute();
request.setRequestUrl('https://instance.example2.com/v1/attachments/upload/task/165469349718887155'); // the URL, onкуда which the file is uploadedзагрузить файл
request.addFileContent(downloadResponse.getContentBase64(), 'files', 'file.mp3');
const uploadResponse = request.execute(); |
execute()
Используйте данный метод для отправки запроса REST.
Возвращаемое значение:
Пример:
Code Block |
---|
language | js |
---|
theme | Eclipse |
---|
title | execute() |
---|
linenumbers | true |
---|
|
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 | Да | Нет |
Возвращаемое значение:
Данный метод Метод не возвращает значение. |
Пример:
Code Block |
---|
language | js |
---|
theme | Eclipse |
---|
title | setBasicAuth() |
---|
linenumbers | true |
---|
|
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());
// InfoИнформация: {"messages":[],"status":"OK","data":{"result":null,"info":"Info: 20... |
Фрагмент кода ниже демонстрирует, как получить токен авторизации с логином и паролем пользователя. В коде используются примеры данных для метода setRequestUrl(requestUrl) и константы payload. Замените его реальными данными перед использованием.
Code Block |
---|
language | js |
---|
theme | Eclipse |
---|
title | Auth methodМетод авторизации |
---|
linenumbers | true |
---|
|
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); // InfoИнформация: 5WvOT9Ejlxd6Gb8bkCWMtG3XXMYcoDDJ |
setRequestUrl(requestUrl)
Используйте данный метод, чтобы задать URL-адрес запроса. Чтобы получить URL-адрес запроса, используйте метод getRequestUrl().
Параметры:
Название | Тип | Обязательный | Значение по умолчанию |
---|
requestUrl | String | Да | Нет |
Возвращаемое значение:
Данный метод Метод не возвращает значение. |
Пример:
Code Block |
---|
language | js |
---|
theme | Eclipse |
---|
title | setRequestUrl() |
---|
linenumbers | true |
---|
|
const request = sws.restRequestV1();
request.setRequestUrl('https://instance.example.com/v1/ajax-script/run');
ss.info(request.getRequestUrl());
// InfoИнформация: https://instance.example.com/v1/ajax-script/run |
setRequestMethod(methodName)
Используйте данный метод, чтобы задать метод запроса (GET, POST, PURGE и пр.) Укажите название метода в параметреmethodName. Для того , чтобы получить название метода, используйте метод метод getRequestMethod().
Параметры:
Название | Тип | Обязательный | Значение по умолчанию |
---|
methodName | String | Да | Нет |
Возвращаемое значение:
Данный метод Метод не возвращает значение. |
Пример:
Code Block |
---|
language | js |
---|
theme | Eclipse |
---|
title | setRequestMethod() |
---|
linenumbers | true |
---|
|
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());
// InfoИнформация: https://instance.example.com/v1/ajax-script/run
// InfoИнформация: POST |
setRequestTimeout(timeout)
Устанавливает таймаут Используйте метод, чтобы устанавить время ожидания ответа запроса в секундах.
Параметры:
Название | Тип | Обязательный | Значение по умолчанию |
---|
timeout | Integer | Да | Нет |
Возвращаемое значение:
Данный метод Метод не возвращает значение. |
Пример:
Code Block |
---|
language | js |
---|
theme | Eclipse |
---|
title | setRequestTimeout() |
---|
linenumbers | true |
---|
|
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 | Да | Нет |
Возвращаемое значение:
Данный метод Метод не возвращает значение. |
Пример:
Code Block |
---|
language | js |
---|
theme | Eclipse |
---|
title | setQueryParameter() |
---|
linenumbers | true |
---|
|
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);
// InfoИнформация: https://instance.example.com/rest/v1/table/user?sysparm_query=active%3Dtrue%5EemailLIKEyours%5EORDERBYDESCcompany |
setRequestBody(body)
Используйте этот метод, чтобы задать тело запроса при использовании методов PUT или POST. Чтобы получить тело запроса, используйте метод GET.
Параметры:
Название | Тип | Обязательный | Значение по умолчанию |
---|
body | String | Да | Нет |
Возвращаемое значение:
Данный метод Метод не возвращает значение. |
Пример:
Code Block |
---|
language | js |
---|
theme | Eclipse |
---|
title | setRequestBody() |
---|
linenumbers | true |
---|
|
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 | Да | Нет |
Возвращаемое значение:
Данный метод Метод не возвращает значение. |
Пример:
Code Block |
---|
language | js |
---|
theme | Eclipse |
---|
title | setStringParameter() |
---|
linenumbers | true |
---|
|
/* CreateСоздайте theзапрос 'Telegram' в requestтаблице inЗапросы REST Requests (sys_rest_requestsrequest) table
andи theметод 'Send Message' в methodтаблице inМетоды REST Request Methods (sys_rest_request_method), tableсвязанной relatedс withзапросом 'Telegram' request.
AlsoТакже создайте createпараметры 'chat_id' andи 'text' в Restтаблице RequestПараметры Methodметодов ParamREST (sys_rest_request_method_param), связанные relatedс withметодом 'Send Message' method
*/
const request = sws.restRequestV1('Telegram', 'Send Message');
request.setStringParameter('chat_id', '123456789');
request.setStringParameter('text', 'telegram');
const response = request.execute(); |
Используйте данный метод, чтобы установить заголовок HTTP в запросе с указанным значением. Чтобы получить заголовки запроса, используйте метод getRequestHeaders().
Параметры:
Название | Тип | Обязательный | Значение по умолчанию |
---|
name | String | Да | Нет |
value | String | Да | Нет |
Возвращаемое значение:
Данный метод Метод не возвращает значение. |
Пример:
Code Block |
---|
language | js |
---|
theme | Eclipse |
---|
title | setRequestHeader() |
---|
linenumbers | true |
---|
|
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-адрес запроса. |
Пример:
Code Block |
---|
language | js |
---|
theme | Eclipse |
---|
title | getRequestUrl() |
---|
linenumbers | true |
---|
|
const request = sws.restRequestV1();
request.setRequestUrl(ss.getProperty('simple.instance.uri') + '/v1/ajax-script/run');
const url = request.getRequestUrl();
ss.info(url);
// InfoИнформация: https://your-instance-url/v1/ajax-script/run |
getRequestBody()
Используйте этот метод, чтобы вернуть получить тело запроса. Чтобы установить тело запроса, используйте метод setRequestBody(body).
Возвращаемое значение:
Тело Метод возвращает тело запроса. |
Пример:
Code Block |
---|
language | js |
---|
theme | Eclipse |
---|
title | getRequestBody() |
---|
linenumbers | true |
---|
|
const recordURL =
ss.getProperty('simple.instance.uri') + '/record/' + current.getTableName() + '/' + current.sys_id;
const dataJSON = {
'text': `New`Новый Requestзапрос hasназначен beenна assigned toкоманду DevOps Team <${recordURL}|ViewПоказать Request>`запрос>`
};
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);
//InfoИнформация: {"text":"NewНовый Requestзапрос hasназначен beenна assigned toкоманду DevOps Team <https://your-instance-url.simpleone.ru\/record\/task\/161123123123123123|View Request>"} |
()
Используйте этот
Испольуйте этот метод, чтобы вернуть получить все заголовки запроса. Чтобы установить заголовки запроса, используйте метод setRequestHeader(name, value).
Возвращаемое значение:
Array | Object | Метод возвращает объекты заголовков запроса. Ключи – это названия заголовков, а значения - массивы значений заголовков. |
Заголовки запросаПример:
Code Block |
---|
language | js |
---|
theme | Eclipse |
---|
title | getRequestHeaders() |
---|
linenumbers | true |
---|
|
const request = sws.restRequestV1();
request.setRequestHeader('Content-type', 'application/json');
const header = request.getRequestHeaders();
ss.info(header);
// InfoИнформация: {"content-type":["application\/json"]} |
getRequestMethod()
Используйте этот метод, чтобы вернуть метод запроса. Чтобы установить метод запроса, используйте метод используйте setRequestMethod(methodName).
Возвращаемое значение:
Название Метод возвращает название метода. |
Пример:
Code Block |
---|
language | js |
---|
theme | Eclipse |
---|
title | getRequestMethod() |
---|
linenumbers | true |
---|
|
const request = sws.restRequestV1();
request.setRequestMethod('GET');
const method = request.getRequestMethod();
ss.info(method);
//InfoИнформация: GET |
useHttp2(value)
Используйте этот метод, чтобы сделать протокол HTTP/2 обязательным.
Note |
---|
При использовании этого метода необходимо, чтобы хост поддерживал протокол HTTP/2. |
Параметры:
Название | Тип | Обязательный | Значение по умолчанию |
---|
value |
booleanВозвращаемое значение:
Тип | Описание |
---|
Void | Данный метод Метод не возвращает значение. |
Пример:
Code Block |
---|
language | js |
---|
theme | Eclipse |
---|
title | useHttp2() |
---|
linenumbers | true |
---|
|
const request = sws.restRequestV1();
request.setRequestUrl('https://http2.pro/api/v1');
request.setRequestMethod('GET');
request.useHttp2();
const response = request.execute(); |
Чтобы отключить использование HTTP/2, необходимо вызвать метод, передав параметр "false".
Code Block |
---|
language | js |
---|
theme | Eclipse |
---|
title | useHttp2() |
---|
linenumbers | true |
---|
|
request.useHttp2(false); |