This server Use this class allows 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 With this method you can create an object used to use in the REST requests. When using the method, the system creates an object is created with the sws prefix global variable (see the code example below for clarification).
Parameter(s):
Name | Type | Mandatory | Default Value |
---|
requestName | String | N | N |
methodName | String | N | 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 (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 to this request. |
|
Return:
Type | Description |
---|
SimpleRestRequest object | This method returns a SimpleRestRequest object initiated by the query transmitted; otherwise, it returns an empty SimpleRestRequest object. |
Example:
Code Block |
---|
language | js |
---|
theme | Eclipse |
---|
title | SimpleRestRequestApi |
---|
linenumbers | true |
---|
|
<![CDATA[/* Create thea 'Telegram' request in the REST Requests (sys_rest_requests) table
and thea 'Send Message' method in the REST Request Methods (sys_rest_request_method) table related withto the 'Telegram' request.
Also create 'chat_id' and 'text' Rest Request Method Param (sys_rest_request_method_param) related withto the '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
((content, paramName, fileName)
The Use this method prepares to prepare a file in binary format for sending and send it in a request.
Parameter(s):
Name | Type | Mandatory | Default Value | Description |
---|
content | String | Y | N | The base64 encoded binary file data. |
paramName | String | Y | N | The name of the parameter in the POST request that will transmit transmits the binary data. |
fileName | String | Y | N | The file name. |
Info |
---|
It is possible to add several files to one into the same request. In this case, the name of the POST request parameter should look like be 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 |
---|
Void | This method does not return a value. |
Examples:
Code Block |
---|
language | js |
---|
theme | Eclipse |
---|
title | Adding two files |
---|
linenumbers | true |
---|
|
<![CDATA[const request = sws.restRequestV1();
request.setRequestUrl('https://instance.example1.com/some/service'); //the URL fromto whichdownload the files are downloaded
const downloadResponse = request.execute();
request.setRequestUrl('https://instance.example2.com/v1/attachments/upload/task/165469349718887155'); // the URL onto whichupload 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 |
---|
|
<![CDATA[const request = sws.restRequestV1();
request.setRequestUrl('https://instance.example1.com/some/service'); //the URL fromto whichdownload the file is downloaded
const downloadResponse = request.execute();
request.setRequestUrl('https://instance.example2.com/v1/attachments/upload/task/165469349718887155'); // the URL onto whichupload the file is uploadedfile
request.addFileContent(downloadResponse.getContentBase64(), 'files', 'file.mp3');
const uploadResponse = request.execute(); |
execute()
Sends the Use this method to send a REST request.
Return:
Example:
Code Block |
---|
language | js |
---|
theme | Eclipse |
---|
title | execute() |
---|
linenumbers | true |
---|
|
<![CDATA[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 Use this method to set a username and a password to authorize in a web service if the basic authentication type was chosenis selected.
Parameter(s):
Name | Type | Mandatory | Default Value |
---|
userName | String | Y | N |
userPassword | String | Y | N |
Return:
Type | Description |
---|
Void | This method does not return a value. |
Example:
Code Block |
---|
language | js |
---|
theme | Eclipse |
---|
title | setBasicAuth() |
---|
linenumbers | true |
---|
|
<![CDATA[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 The code fragment example 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 usageusing it.
Code Block |
---|
language | js |
---|
theme | Eclipse |
---|
title | Auth Authorization method |
---|
linenumbers | true |
---|
|
<![CDATA[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)
Sets the Use this method to set a request URL. To get a request URL, use the getRequestUrl() method.
Parameter(s):
Name | Type | Mandatory | Default Value |
---|
requestUrl | String | Y | N |
Return:
Type | Description |
---|
Void | This method does not return a value. |
Example:
Code Block |
---|
language | js |
---|
theme | Eclipse |
---|
title | setRequestUrl() |
---|
linenumbers | true |
---|
|
<![CDATA[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 Use this method to set a request 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 |
---|
methodName | String | Y | N |
Return:
Type | Description |
---|
Void | This method does not return a value. |
Example:
Code Block |
---|
language | js |
---|
theme | Eclipse |
---|
title | setRequestMethod() |
---|
linenumbers | true |
---|
|
<![CDATA[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 Use this method to set the response timeout ( in seconds) until the request is out of time.
Parameter(s):
Name | Type | Mandatory | Default Value |
---|
timeout | Integer | Y | 60N |
Return:
Type | Description |
---|
Void | This method does not return a value. |
Example:
Code Block |
---|
language | js |
---|
theme | Eclipse |
---|
title | setRequestTimeout() |
---|
linenumbers | true |
---|
|
<![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 Use this method to add a parameter into the end of the request URL generated as "name=value".
Parameter(s):
Name | Type | Mandatory | Default Value |
---|
name | String | Y | N |
value | String | Y | N |
Return:
Type | Description |
---|
Void | This method does not return a value. |
Example:
Code Block |
---|
language | js |
---|
theme | Eclipse |
---|
title | setQueryParameter() |
---|
linenumbers | true |
---|
|
<![CDATA[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 Use this method to set the request body when using the PUT or POST methods are used. To get the request body, use the GET method.
Parameter(s):
Name | Type | Mandatory | Default Value |
---|
body | String | Y | N |
Return:
Type | Description |
---|
Void | This method does not return a value. |
Example:
Code Block |
---|
language | js |
---|
theme | Eclipse |
---|
title | setRequestBody() |
---|
linenumbers | true |
---|
|
<![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));
const response = request.execute(); |
setStringParameter(name, value)
Sets the Use this method to set a request variable with the name specified from the record to the value specifiedset in the name and the value set in the value parameter.
Parameter(s):
Name | Type | Mandatory | Default Value |
---|
name | String | Y | N |
value | String | Y | N |
Return:
Type | Description |
---|
Void | This method does not return a value. |
Example:
Code Block |
---|
language | js |
---|
theme | Eclipse |
---|
title | setStringParameter() |
---|
linenumbers | true |
---|
|
<![CDATA[/* Create thea 'Telegram' request in REST Requests (sys_rest_requests) table
and thea 'Send Message' method in REST Request Methods (sys_rest_request_method) table related to withthe 'Telegram' request.
Also create 'chat_id' and 'text' Rest Request Method Param (sys_rest_request_method_param) related to withthe '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 Use this method to set a HTTP header in the request with the value specified. To get the request headers, use the getRequestHeaders() method.
Parameter(s):
Name | Type | Mandatory | Default Value |
---|
name | String | Y | N |
value | String | Y | N |
Return:
Type | Description |
---|
Void | This method does not return a value. |
Example:
Code Block |
---|
language | js |
---|
theme | Eclipse |
---|
title | setRequestHeader() |
---|
linenumbers | true |
---|
|
<![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 Use this method to receive a request URL with its parameters. To set a request URL, use thesetRequestUrl(requestUrl) method.
Return:
Type | Description |
---|
String | The request URL. |
Example:
Code Block |
---|
language | js |
---|
theme | Eclipse |
---|
title | getRequestUrl() |
---|
linenumbers | true |
---|
|
<![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 Use this method to return a request body. To set a request body, use the setRequestBody(body) method.
Return:
Type | Description |
---|
String | The request body. |
Example:
Code Block |
---|
language | js |
---|
theme | Eclipse |
---|
title | getRequestBody() |
---|
linenumbers | true |
---|
|
<![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>"} |
Returns Use this method to receive all request headers. To set request headers, use the setRequestHeader(name, value) method.
Return:
Array requested headerskeys are the hearder names, the values are the arrays of header values. |
Example:
Code Block |
---|
language | js |
---|
theme | Eclipse |
---|
title | getRequestHeaders() |
---|
linenumbers | true |
---|
|
<![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 Use this method to receice the request method used. To set the a request method, use the setRequestMethod(methodName) method.
Return:
Type | Description |
---|
String | The method name. |
Example:
Code Block |
---|
language | js |
---|
theme | Eclipse |
---|
title | getRequestMethod() |
---|
linenumbers | true |
---|
|
<![CDATA[const request = sws.restRequestV1();
request.setRequestMethod('GET');
const method = request.getRequestMethod();
ss.info(method);
//Info: GET |
useHttp2(value)
This Use this method makes it obligaroty to use make the HTTP/2 protocol mandatory.
Note |
---|
Using this This methods requires the a host that also supports supportting the HTTP/2 protocol. |
Parameter(s):
Name | Type | Mandatory | Default Value |
---|
value | booleanBoolean | N | true |
Return:
Type | Description |
---|
Void | This method does not return a value. |
Example:
Code Block |
---|
language | js |
---|
theme | Eclipse |
---|
title | useHttp2() |
---|
linenumbers | true |
---|
|
<![CDATA[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 with the false parameter.
Code Block |
---|
language | js |
---|
theme | Eclipse |
---|
title | useHttp2() |
---|
linenumbers | true |
---|
|
<![CDATA[request.useHttp2(false); |