Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Merged branch "DOC0000565" into parent

 This server class allows operating to operate with the REST API methods and parameters.

SimpleRestRequest()


Initializes an empty SimpleRestRequest object. When using such an object, specify the method and the endpoint manually.

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

NameTypeMandatoryDefault Value
requestNameStringNN
methodNameStringNN


Info

Provide values to for parameters as shown below:

ParameterValue
requestName Specify the value of the Name field taken from the record in the REST Requests (sys_rest_requests) table.
methodName Specify the value of the Name field taken from the record in the REST Request Methods (sys_rest_request_method) table related with this request.


Return:

TypeDescription
SimpleRestRequest objectThis method returns a SimpleRestRequest object object initiated by the query transmitted; otherwise, it returns an empty SimpleRestRequest object.


Example:

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

addFileContent()


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


ReturnParameter(s):

NameTypeMandatoryDefault ValueDescription
SimpleRestResponseThis method returns a SimpleRestResponse object.

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 web-service auth if the basic authentication type was chosen. 

Parameter(s):

NameTypeMandatoryDefault ValueuserNameStringYNuserPasswordStringYN
contentStringYNThe base64 encoded binary file data.
paramNameStringYNThe name of the parameter in the POST request that will transmit the binary data.
fileNameStringYNThe 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:

Return:

Type
Type
Description
VoidThis method does not return a value.

ExampleExamples:

Code Block
languagejs
themeEclipse
titlesetBasicAuthAdding two files
linenumberstrue
<![CDATA[const scriptJSONrequest = {
    'script': 'ss.info(new SimpleDateTime().getValue())'
}
const request = sws.restRequestV1();
request.setRequestUrl(ss.getProperty('simple.instance.uri') + '/v1/ajax-script/run');
request.setRequestMethod('POSTsws.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.setBasicAuth('admin'addFileContent(downloadResponse.getContentBase64(), 'password');
request.setRequestHeader('Content-type'files[2]', 'application/jsonfile2.png');
request.setRequestBody(JSON.stringify(scriptJSON));
const responseuploadResponse = 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 user login and password. The code uses example data for the the setRequestUrl(requestUrl) method and the payload constant. Replace it with the productive data before usage.



Code Block
languagejs
themeEclipse
titleAdding one file
linenumberstrue
<![CDATA[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.


Return:

TypeDescription
SimpleRestResponseThis method returns a SimpleRestResponse object.


Example:

Code Block
languagejs
themeEclipse
titleexecute
linenumberstrue
<![CDATA[const request = sws.restRequestV1();
request.setRequestUrl(`https://jsonplaceholder.typicode.com/todos/1`);
request.setRequestMethod('GET')
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)

setBasicAuth(userName, userPassword)


Sets the username for the web service authentification if the basic authentication type was chosen. Sets the request URL. To get request URL, use the getRequestUrl() method.


Parameter(s):

requestUrl
NameTypeMandatoryDefault Value
userNameStringYN
userPasswordStringYN


Return:

TypeDescription
VoidThis method does not return a value.


Example:

Code Block
languagejs
themeEclipse
titlesetRequestUrlsetBasicAuth
linenumberstrue
const <![CDATA[const scriptJSON = {
    'script': 'ss.info(new SimpleDateTime().getValue())'
}
const request = sws.restRequestV1();
request.setRequestUrl('https://instance.example.comss.getProperty('simple.instance.uri') + '/v1/ajax-script/run');
ssrequest.info(setRequestMethod('POST');
request.getRequestUrl()setBasicAuth('admin', 'password');
// 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):

NameTypeMandatoryDefault ValuemethodNameStringYN

Return:

TypeDescriptionVoidThis method does not return a value.
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.

Code Block
languagejs
themeEclipse
titleAuth method
linenumberstrue
<![CDATA[const request = sws.restRequestV1();
request.setRequestUrl('

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

NameTypeMandatoryDefault ValuetimeoutIntegerY60

Return:

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

setQueryParameter(name, value)


ss.info(JSON.parse(response.getBody()).data.auth_key); // Info: 5WvOT9Ejlxd6Gb8bkCWMtG3XXMYcoDDJ

setRequestUrl(requestUrl)


Sets the request URL. To get a request URL, use the getRequestUrl() method.Adds a parameter into the end of the request URL generated as "name=value",


Parameter(s):

NameTypeMandatoryDefault Value
namerequestUrlStringYN
valueStringYN


Return:

TypeDescription
VoidThis method does not return a value.


Example:

Code Block
languagejs
themeEclipse
titlesetQueryParametersetRequestUrl
linenumberstrue
<![CDATA[const request = sws.restRequestV1();
request.setRequestUrl('https://instance.example.com/rest/v1/tableajax-script/userrun');
ss.info(request.setRequestMethodgetRequestUrl('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 used PUT or POST methods. To get the request body, use the  method.

Parameter(s):

// 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):

NameTypeMandatoryDefault Value
methodName
NameTypeMandatoryDefault Value
bodyStringYN


Return:

TypeDescription
VoidThis method does not return a value.


Example:

Code Block
languagejs
themeEclipse
titlesetRequestBodysetRequestMethod
linenumberstrue
<![CDATA[const recordURLrequest =
    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):

NameTypeMandatoryDefault ValuenameStringYNvalueStringYN
 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):

NameTypeMandatoryDefault Value
timeoutIntegerY60


Return:

TypeDescription
VoidThis method does not return a value.


Example:

Code Block
languagejs
themeEclipse
titlesetStringParametersetRequestTimeout
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):

<![CDATA[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):

NameTypeMandatoryDefault Value
nameStringYN
valueString
NameTypeMandatoryDefault Value
nameStringYN
valueStringYN


Return:

TypeDescription
VoidThis method does not return a value.


Example:

Code Block
languagejs
themeEclipse
titlesetRequestHeadersetQueryParameter
linenumberstrue
<![CDATA[const scriptJSONrequest = {
    'script': 'ss.info(new SimpleDateTime().getValue())'
}
const request = sws.sws.restRequestV1();
request.setRequestUrl('https://instance.example.com/rest/v1/ajax-scripttable/runuser');
request.setRequestMethod('POSTGET');
request.setBasicAuthsetRequestHeader('usernameAuthorization', 'password');
request.setRequestBody(JSON.stringify(scriptJSONBearer ' + new SimpleUser().getAccessToken());
request.setRequestHeadersetQueryParameter('Content-typesysparm_query', 'application/jsonactive=true^emailLIKEyours^ORDERBYDESCcompany');
const responseurl = request.executegetRequestUrl();

getRequestUrl()

Displays the request URL with parameters. To set request URL, use thesetRequestUrl(requestUrl) method.

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

NameTypeMandatoryDefault Value
bodyStringYN


Return:

TypeDescription
VoidThis method does not return a value

Return:

TypeDescription
StringThe request URL.


Example:

Code Block
languagejs
themeEclipse
titlegetRequestUrlsetRequestBody
linenumberstrue
<![CDATA[const requestrecordURL = sws.restRequestV1();
request.setRequestUrl(
    ss.getProperty('simple.instance.uri') + '/v1record/ajax-script/run')' + current.getTableName() + '/' + current.sys_id;
const urldataJSON = request.getRequestUrl();
ss.info(url);
// Info: https://your-instance-url/v1/ajax-script/run

getRequestBody()

Returns the request body. To set request body, use the setRequestBody(body) method.

Return:

TypeDescriptionStringThe request body.
{
    '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):

NameTypeMandatoryDefault Value
nameStringYN
valueStringYN


Return:

TypeDescription
VoidThis method does not return a value.


Example:

Code Block
languagejs
themeEclipse
titlesetStringParameter
linenumberstrue
<![CDATA[/* 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):

NameTypeMandatoryDefault Value
nameStringYN
valueStringYN


Return:

TypeDescription
VoidThis method does not return a value.


Example:

Code Block
languagejs
themeEclipse
titlesetRequestHeader
linenumberstrue
<![CDATA[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
<![CDATA[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
<![CDATA[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
<![CDATA[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
<![CDATA[

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()setRequestMethod('GET');
const bodymethod = request.getRequestBodygetRequestMethod();
ss.info(bodymethod);
//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.
 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):

NameTypeMandatoryDefault Value
valuebooleanNtrue

Return:

TypeDescription
ArrayThe requested headers
VoidThis method does not return a value.

Example:

Code Block
languagejs
themeEclipse
titlegetRequestHeadersuseHttp2
linenumberstrue
<![CDATA[const request = sws.restRequestV1();
request.setRequestHeader('Content-type', 'application/jsonsetRequestUrl('https://http2.pro/api/v1');
const header = request.getRequestHeaderssetRequestMethod();
ss.info(header);
// Info: {"content-type":["application\/json"]}

getRequestMethod()

Returns the request method. To set the request method, use the setRequestMethod(methodName) method.

Return:

TypeDescriptionStringThe method name.
'GET');
request.useHttp2();
const response = request.execute();

To disable the usage of HTTP/2, you need to call the method passing the false parameter. 

Example:

Code Block
languagejs
themeEclipse
titlegetRequestMethoduseHttp2
linenumberstrue
const request = sws.restRequestV1();
request.setRequestMethod('GET');
const method = request.getRequestMethod();
ss.info(method);
//Info: GET<![CDATA[request.useHttp2(false);


Table of Contents
absoluteUrltrue
classfixedPosition