Используйте этот Данный класс содержит методы для рабты работы с методами и параметрами REST API.
Объект SimpleRestRequest
()Данный метод предназначен для создания пустого объекта SimpleRestRequest. При использовании такого объекта укажите метод и конечную точку вручную.
SimpleRestRequest(requestName, methodName)
Этот метод предназначен для создания объекта, используемого в запросах REST. При использовании метода создается объект с префиксом sws (см. пояснение в примере кода ниже).
Параметры:
Используйте метод sws.restRequestV1, как описано в примере ниже, чтобы создать объект SimpleRestRequest.
Параметры:
Название | Тип | Обязательный | Значение по умолчанию |
---|
requestName | String | Нет | '' |
Название | Тип | Обязательный | Значение по умолчанию |
---|
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 |
---|
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 // URL, куда загрузить файл
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)
Используйте данный метод, чтобы задать метод запроса 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 | Да | Нет |
Возвращаемое значение:
Данный метод Метод не возвращает значение. |
Пример:
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.
Параметры:
NameTypeТип | Обязательный | Значение по умолчанию |
---|
timeout | Integer |
Y60 Возвращаемое значение:
TypeДанный метод Метод не возвращает значение. |
Пример:
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".
Параметры:
NameTypeТип | Обязательный | Значение по умолчанию |
---|
name | String |
YNYN Возвращаемое значение:
TypeДанный метод Метод не возвращает значение. |
Пример:
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. Чтобы получить тело запроса, используйте метод GETSets the request body when the PUT or POST methods are used. To get the request body, use the GET method.
Параметры:
NameTypeТип | Обязательный | Значение по умолчанию |
---|
body | String |
YN Возвращаемое значение:
TypeДанный метод Метод не возвращает значение. |
Пример:
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, в значение, указанное в value.
Параметры:
NameTypeТип | Обязательный | Значение по умолчанию |
---|
name | String |
YNYN Возвращаемое значение:
TypeДанный метод Метод не возвращает значение. |
Пример:
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()Sets the HTTP header in the request with the value specified. To get request headers, use the getRequestHeaders() method.
Параметры:
NameTypeТип | Обязательный | Значение по умолчанию |
---|
name | String |
YNYN Возвращаемое значение:
TypeДанный метод Метод не возвращает значение. |
Пример:
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-адрес запроса, используйте метод Displays the request URL with parameters. To set a request URL, use thesetRequestUrl(requestUrl) method.
Возвращаемое значение:
TypeThe request URLМетод возвращает 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.
Возвращаемое значение:
TypeThe 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.
Возвращаемое значение:
TypeArray | The requested headersObject | Метод возвращает объекты заголовков запроса. Ключи – это названия заголовков, а значения - массивы значений заголовков. |
Пример:
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.
Возвращаемое значение:
TypeThe 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. |
Параметры:
NameTypeТип | Обязательный | Значение по умолчанию |
---|
value |
booleanN Возвращаемое значение:
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); |