Используйте этот класс для рабты с методами и параметрами REST API.
SimpleRestRequest()
Данный метод предназначен для создания пустого объекта SimpleRestRequest. При использовании такого объекта укажите метод и конечную точку вручную.
SimpleRestRequest(requestName, methodName)
Этот метод предназначен для создания объекта, используемого в запросах REST. При использовании метода создается объект с префиксом sws (см. пояснение в примере кода ниже).
Параметры:
Название | Тип | Обязательный | Значение по умолчанию |
---|
requestName | String | Нет | Нет |
methodName | 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 |
---|
linenumbers | true |
---|
|
/* Create the 'Telegram' request in REST Requests (sys_rest_requests) 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 Param (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 | String | Да | Нет | Данные двоичного файла в кодировке base64. |
paramName | String | Да | Нет | Название параметра в запросе POST, который передает двоичные данные. |
fileName | String | Да | Нет | Название файла |
Info |
---|
It is possible to add several files to one request. In this case, the name of the POST request parameter should look like an array of elements. For example, if there is one file, the parameter can be called files. If there are two files, they should be called files[1] and В один запрос можно добавить несколько файлов. В этом случае название параметра запроса 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
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 | Да | Нет |
Возвращаемое значение:
Тип | Описание |
---|
Void | Данный метод не возвращает значение. |
Пример:
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) и константы полезной нагрузки. Замените его реальными данными перед использованием.
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 | Да | Нет |
Возвращаемое значение:
Тип | Описание |
---|
Void | Данный метод не возвращает значение. |
Пример:
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)
Sets the requesting method Используйте данный метод, чтобы задать метод запроса (GET, POST, PURGE , etc). Specify the method name within the methodName parameter. To get the method name, use the getRequestMethod() methodи пр.) Укажите название метода в параметреmethodName. Для того, чтобы получить название метода, используйте метод getRequestMethod().
Параметры:
Название | Тип | Обязательный | Значение по умолчанию |
---|
methodName | String | Да | Нет |
Возвращаемое значение:
Тип | Описание |
---|
Void | Данный метод не возвращает значение. |
Пример:
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)
Sets the response timeout (in seconds) until the request is out of timeУстанавливает таймаут ответа запроса в секундах.
Параметры:
NameНазвание | TypeТип | Обязательный | Значение по умолчанию |
---|
timeout | Integer | YДа | 60 |
Возвращаемое значение:
TypeТип | Описание |
---|
Void | Данный метод не возвращает значение. |
Пример:
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)
Adds a parameter into the end of the request URL generated as Используйте этот метод, чтобы добавить параметр в конец URL запроса, сгенерированноко как "name=value".
Параметры:
NameНазвание | TypeТип | Обязательный | Значение по умолчанию |
---|
name | String | YДа | NНет |
value | String | YДа | NНет |
Возвращаемое значение:
TypeТип | Описание |
---|
Void | Данный метод не возвращает значение. |
Пример:
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)
Sets the request body when the PUT or POST methods are used. To get the request body, use the GET methodИспользуйте этот метод, чтобы задать тело запроса при использовании методов PUT или POST. Чтобы получить тело запроса, используйте метод GET.
Параметры:
NameНазвание | TypeТип | Обязательный | Значение по умолчанию |
---|
body | String | YДа | NНет |
Возвращаемое значение:
TypeТип | Описание |
---|
Void | Данный метод не возвращает значение. |
Пример:
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': `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));
const response = request.execute(); |
setStringParameter(name, value)
Sets the request variable with the name specified from the record to the value specifiedИспользуйте этот метод, чтобы устанавить переменную запроса с именем, указанным из записи, в указанное значение.
Параметры:
NameНазвание | TypeТип | Обязательный | Значение по умолчанию |
---|
name | String | YДа | NНет |
value | String | YДа | NНет |
Возвращаемое значение:
TypeТип | Описание |
---|
Void | Данный метод не возвращает значение. |
Пример:
Code Block |
---|
language | js |
---|
theme | Eclipse |
---|
title | setStringParameter |
---|
linenumbers | true |
---|
|
/* Create the 'Telegram' request in REST Requests (sys_rest_requests) 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 Param (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(); |
Sets the HTTP header in the request with the value specified. To get request headers, use the getRequestHeaders() methodИспользуйте данный метод, чтобы установить заголовок HTTP в запросе с указанным значением. Чтобы получить заголовки запроса, используйте метод getRequestHeaders().
Параметры:
NameНазвание | TypeТип | Обязательный | Значение по умолчанию |
---|
name | String | YДа | NНет |
value | String | YДа | NНет |
Возвращаемое значение:
TypeТип | Описание |
---|
Void | Данный метод не возвращает значение. |
Пример:
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()
Displays the request URL with parameters. To set a request URL, use thesetRequestUrl(requestUrl) method. Отображает URL-адрес запроса с параметрами. Чтобы установить URL, use the-адрес запроса, используйте метод setRequestUrl(requestUrl) method.
Возвращаемое значение:
TypeТип | Описание |
---|
String | The request 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()
Returns the request body. To set a request body, use the Используйте этот метод, чтобы вернуть тело запроса. Чтобы установить тело запроса, используйте метод setRequestBody(body) method.
Возвращаемое значение:
TypeТип | Описание |
---|
StringThe request 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>"} |
Returns all request headers. To set request headers, use the Испольуйте этот метод, чтобы вернуть все заголовки запроса. Чтобы установить заголовки запроса, используйте метод setRequestHeader(name, value) method.
Возвращаемое значение:
TypeТип | Описание |
---|
ArrayThe requested headers. | Заголовки запроса |
Пример:
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()
Returns the request method. To set the request method, use the Используйте этот метод, чтобы вернуть метод запроса. Чтобы установить метод запроса, используйте метод setRequestMethod(methodName) method.
Возвращаемое значение:
TypeТип | Описание |
---|
StringThe method name. | Название метода |
Пример:
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)
This method makes it obligaroty to use the Используйте этот метод, чтобы сделать протокол HTTP/2 protocolобязательным.
Note |
---|
Using this methods requires the host that also supports the При использовании этого метода необходимо, чтобы хост поддерживал протокол HTTP/2 protocol. |
Параметры:
NameНазвание | TypeТип | Обязательный | Значение по умолчанию |
---|
value | boolean | NНет | true |
Возвращаемое значение:
TypeТип | Описание |
---|
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(); |
To disable the usage of Чтобы отключить использование HTTP/2, you need to call the method passing the false parameter. , необходимо вызвать метод, передав параметр "false".
Code Block |
---|
language | js |
---|
theme | Eclipse |
---|
title | useHttp2 |
---|
linenumbers | true |
---|
|
request.useHttp2(false); |