Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

 This server class allows to operate with the REST API methods and parameters Используйте этот класс для рабты с методами и параметрами REST API.

SimpleRestRequest()


Initializes an empty SimpleRestRequest object. When using such an object, specify the method and the endpoint manuallyДанный метод предназначен для создания пустого объекта SimpleRestRequest. При использовании такого объекта укажите метод и конечную точку вручную.

SimpleRestRequest(requestName, methodName)

This method is intended to create an object used in the REST requests. When using the method, an object is created with the sws prefix (see the code example below for clarification).

Parameter(s):


Этот метод предназначен для создания объекта, используемого в запросах REST. При использовании метода создается объект с префиксом sws (см. пояснение в примере кода ниже).


Параметры:

НазваниеТипОбязательныйЗначение по умолчаниюNameTypeMandatoryDefault Value
requestNameStringNНетNНет
methodNameStringNНетNНет


Info

Provide values for parameters as shown below Укажите значения параметров, как показано ниже:

ParameterПараметрValueЗначение
requestName Specify the value of the Name field taken from the record in the REST Requests Укажите значение поля Наименование из записи в таблице Запросы REST (sys_rest_requests) table.
methodName Specify the value of the Name field taken from the record in the REST Request Methods Укажите значение поля Наименование из записи в таблице Методы REST (sys_rest_request_method)table related with this request, относящейся к этому запросу.


ReturnВозвращаемое значение:

TypeТипDescriptionОписание
SimpleRestRequest objectThis method returns a SimpleRestRequest object initiated by the query transmitted; otherwise, it returns an empty SimpleRestRequest object.Этот метод возвращает объект SimpleRestRequest, созданный при помощи переданного запроса. В случае ошибки метод возвращает пустой объект SimpleRestRequest.


ПримерExample:

Code Block
languagejs
themeEclipse
titleSimpleRestRequestApi
linenumberstrue
/* 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();

// ORИЛИ

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()

The method prepares a file in binary format for sending it in a request.

Parameter(s):


Используйте данный метод для подготовки файла в двоичном формате и его последующей отправки в запросе.


Параметры:

НазваниеТипОбязательныйЗначение по умолчаниюОписаниеNameTypeMandatoryDefault ValueDescription
contentStringYДаNНетДанные двоичного файла в кодировке base64The base64 encoded binary file data.
paramNameStringYДаNНетНазвание параметра в запросе POST, который передает двоичные данныеThe name of the parameter in the POST request that will transmit the binary data.
fileNameStringYДаNНетНазвание файлаThe file name.


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 files[2].

ReturnВозвращаемое значение:

TypeТипDescriptionОписание
VoidThis method does not return a valueДанный метод не возвращает значение.

ExamplesПримеры:

Code Block
languagejs
themeEclipse
titleAdding two files
linenumberstrue
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
languagejs
themeEclipse
titleAdding one file
linenumberstrue
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()


Sends the REST requestИспользуйте данный метод для отправки запроса REST.


ReturnВозвращаемое значение:

TypeТипDescriptionОписание
SimpleRestResponseThis method returns a SimpleRestResponse objectМетод возвращает значение объекта SimpleRestResponse.


ExampleПример:

Code Block
languagejs
themeEclipse
titleexecute
linenumberstrue
const request = sws.restRequestV1();
request.setRequestUrl(`https://jsonplaceholder.typicode.com/todos/1`);
request.setRequestMethod('GET');
const response = request.execute();

setBasicAuth(userName, userPassword)

Sets the username for the web service authentification if the basic authentication type was chosen. 

Parameter(s):


Используйте этот метод, чтобы настроить имя пользователя для аутентификации веб-службы, если выбран базовый тип аутентификации.


Параметры:

НазваниеТипОбязательныйЗначение по умолчаниюNameTypeMandatoryDefault Value
userNameStringYДаNНет
userPasswordStringYДаNНет


ReturnВозвращаемое значение:

TypeТипDescriptionОписание
VoidThis method does not return a valueДанный метод не возвращает значение.


ExampleПример:

Code Block
languagejs
themeEclipse
titlesetBasicAuth
linenumberstrue
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...


This code fragment below demonstrates how to retrieve the authorization token with a user login and password. The code uses example data for the the setRequestUrl(requestUrl) method and the payload constant. Replace it with the real data before usageФрагмент кода ниже демонстрирует, как получить токен авторизации с логином и паролем пользователя. В коде используются примеры данных для метода setRequestUrl(requestUrl) и константы полезной нагрузки. Замените его реальными данными перед использованием.

Code Block
languagejs
themeEclipse
titleAuth method
linenumberstrue
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-адрес запроса, используйте метод Sets the request URL. To get a request URL, use the getRequestUrl() method.


Parameter(s)Параметры:

NameНазваниеTypeТипMandatoryОбязательныйЗначение по умолчаниюDefault Value
requestUrlStringYДаNНет


ReturnВозвращаемое значение:

TypeТипDescriptionОписание
VoidThis method does not return a valueДанный метод не возвращает значение.


ExampleПример:

Code Block
languagejs
themeEclipse
titlesetRequestUrl
linenumberstrue
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.


Parameter(s)Параметры:

NameНазваниеTypeТипMandatoryОбязательныйЗначение по умолчаниюDefault Value
methodNameStringYДаNНет


ReturnВозвращаемое значение:

TypeТипDescriptionОписание
VoidThis method does not return a valueДанный метод не возвращает значение.


ExampleПример:

Code Block
languagejs
themeEclipse
titlesetRequestMethod
linenumberstrue
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.


Parameter(s)Параметры:

NameTypeMandatoryОбязательныйЗначение по умолчаниюDefault Value
timeoutIntegerY60


ReturnВозвращаемое значение:

TypeDescriptionОписание
VoidThis method does not return a valueДанный метод не возвращает значение.


ExampleПример:

Code Block
languagejs
themeEclipse
titlesetRequestTimeout
linenumberstrue
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 "name=value".


Parameter(s)Параметры:

NameTypeMandatoryОбязательныйЗначение по умолчаниюDefault Value
nameStringYN
valueStringYN


ReturnВозвращаемое значение:

TypeDescriptionОписание
VoidThis method does not return a valueДанный метод не возвращает значение.


ExampleПример:

Code Block
languagejs
themeEclipse
titlesetQueryParameter
linenumberstrue
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.


Parameter(s)Параметры:

NameTypeMandatoryОбязательныйЗначение по умолчаниюDefault Value
bodyStringYN


ReturnВозвращаемое значение:

TypeDescriptionОписание
VoidThis method does not return a valueДанный метод не возвращает значение.


ExampleПример:

Code Block
languagejs
themeEclipse
titlesetRequestBody
linenumberstrue
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.


Parameter(s)Параметры:

NameTypeMandatoryОбязательныйЗначение по умолчаниюDefault Value
nameStringYN
valueStringYN


ReturnВозвращаемое значение:

TypeDescriptionОписание
VoidThis method does not return a valueДанный метод не возвращает значение.


ExampleПример:

Code Block
languagejs
themeEclipse
titlesetStringParameter
linenumberstrue
/* 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();

setRequestHeader(name, value)


Sets the HTTP header in the request with the value specified. To get request headers, use the getRequestHeaders() method.


Parameter(s)Параметры:

NameTypeMandatoryОбязательныйЗначение по умолчаниюDefault Value
nameStringYN
valueStringYN


ReturnВозвращаемое значение:

TypeDescriptionОписание
VoidThis method does not return a valueДанный метод не возвращает значение.


ExampleПример:

Code Block
languagejs
themeEclipse
titlesetRequestHeader
linenumberstrue
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.


ReturnВозвращаемое значение:

TypeDescriptionОписание
StringThe request URL.


ExampleПример:

Code Block
languagejs
themeEclipse
titlegetRequestUrl
linenumberstrue
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.


ReturnВозвращаемое значение:

TypeDescriptionОписание
StringThe request body.


ExampleПример:

Code Block
languagejs
themeEclipse
titlegetRequestBody
linenumberstrue
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>"}

getRequestHeaders()


Returns all request headers. To set request headers, use the setRequestHeader(name, value) method.


ReturnВозвращаемое значение:

TypeDescriptionОписание
ArrayThe requested headers.


ExampleПример:

Code Block
languagejs
themeEclipse
titlegetRequestHeaders
linenumberstrue
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.


ReturnВозвращаемое значение:

TypeDescriptionОписание
StringThe method name.


ExampleПример:

Code Block
languagejs
themeEclipse
titlegetRequestMethod
linenumberstrue
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.

Parameter(s)Параметры:

NameTypeMandatoryОбязательныйЗначение по умолчаниюDefault Value
valuebooleanNtrue

ReturnВозвращаемое значение:

TypeDescriptionОписание
VoidThis method does not return a valueДанный метод не возвращает значение.

ExampleПример:

Code Block
languagejs
themeEclipse
titleuseHttp2
linenumberstrue
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. 

Code Block
languagejs
themeEclipse
titleuseHttp2
linenumberstrue
request.useHttp2(false);


Table of Contents
absoluteUrltrue
classfixedPosition