This This server class allows provides methods to operate work with the REST API methods and parameters.
SimpleRestRequest
(requestName, methodName)object
To create a SimpleRestRequest object, use the sws.restRequestV1 method as described below
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):
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 this request. |
|
Return:
Type | Description |
---|
SimpleRestRequest object | This method returns a SimpleRestRequest object initiated by the query transmitted; otherwise, it returns an empty |
SimpleRestRequest objectSimpleRestRequest object. |
Example:
Code Block |
---|
language | js |
---|
theme | Eclipse |
---|
title | SimpleRestRequestApiCreating a SimpleRestRequest object |
---|
linenumbers | true |
---|
|
/* Create a 'Telegram' request in the REST Requests (sys_rest_requests) table
and the 'Send Message' method in the REST Request Methods (sys_rest_request_method) table related with the 'Telegram' request.
Also create the 'chat_id' and 'text' Rest Request Method Param (sys_rest_request_method_param) related with 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 the method prepares to prepare a file in binary format for sending it in a request.
Parameter(s):
Name | Type | Mandatory | Default Valuevalue | 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 the binary data. |
fileName | String | Y | 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 |
---|
Void | This method does not return a value. |
Examples:
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 onwhere whichto theupload 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 onwhere whichto the file is uploadedupload files
request.addFileContent(downloadResponse.getContentBase64(), 'files', 'file.mp3');
const uploadResponse = request.execute(); |
execute()
Sends Use the method to end the REST request.
Return:
Example:
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)
Sets the username for the web service authentification if the basic authentication type was chosen. Use this method to set a user name and password to authorize on a web service if the resource requires the basic authorization.
Parameter(s):
Valuevalue |
---|
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 |
---|
|
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 The script example below shows how to retrieve the authorization token with a user login and password. The code script uses example data for the the setRequestUrl(requestUrl) method and the payload constant. Replace it with the real data before usageuse this script example.
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)
Use this method to set Sets the request URL. To get a request URL, use the getRequestUrl() method.
Parameter(s):
Return:
Type | Description |
---|
Void | This method does not return a value. |
Example:
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)methodName)
Use the method to set the request
Sets the requesting method (GET, POST, PURGE, etcand others). Specify the method name within the methodName parameter. To get the method name, use the getRequestMethod() method.
Parameter(s):
Return:
Type | Description |
---|
Void | This method does not return a value. |
Example:
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 Use the method to set the response timeout (of the request in seconds) until the request is out of time.
Parameter(s):
Return:
Type | Description |
---|
Void | This method does not return a value. |
Example:
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 Use this method to add a parameter into the end of the request URL generated as "name=value" to the end of the request URL.
Parameter(s):
Valuevalue |
---|
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 |
---|
|
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)
Use this method to set Sets the request body when using the PUT or POST methods are used. To get the request body, use the GET method.
Parameter(s):
Return:
Type | Description |
---|
Void | This method does not return a value. |
Example:
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 Use the method to set the request variable with the a name specified from the record to the value specifiedin the name parameter into the value parameter.
Parameter(s):
Valuevalue |
---|
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 |
---|
|
/* Create the 'Telegram' request in the REST Requests (sys_rest_requests) table
and the 'Send Message' method in the REST Request Methods (sys_rest_request_method) table related with the 'Telegram' request.
Also create the 'chat_id' and 'text' Rest Request Method Param (sys_rest_request_method_param) related with the 'Send Message' method
*/
const request = sws.restRequestV1('Telegram', 'Send Message');
request.setStringParameter('chat_id', '123456789');
request.setStringParameter('text', 'telegram');
const response = request.execute(); |
Use the method to set Sets the HTTP header in the request with the value specified. To get request headers, use the getRequestHeaders() method.
Parameter(s):
Valuevalue |
---|
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 |
---|
|
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()
Use the method to return Displays the request URL with parameters. To set a request URL, use thesetRequestUrl(requestUrl) method.
Return:
The This method returns the request URL. |
Example:
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()
Use the method to return Returns the request body. To set a request body, use the setRequestBody(body) method.
Return:
The This method returns the request body. |
Example:
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>"} |
Use the method to return Returns all request headers. To set request headers, use the setRequestHeader(name, value) method.
Return:
Array | The requested headers |
---|
Object | The method returns the request header objects. The keys are header names and the values are arrays of header values. |
Example:
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()
Use the method to return Returns the request method. To set the request method, use the setRequestMethod(methodName) method.
Return:
Type | Description |
---|
String | The method returns the method name. |
Example:
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 Use the method makes it obligaroty to make the use of the HTTP/2 protocol obligatory.
Note |
---|
Using this methods requires the host that also supports the HTTP/2 protocol. |
Parameter(s):
Name | Type | Mandatory | Default Valuevalue |
---|
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 |
---|
|
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 |
---|
language | js |
---|
theme | Eclipse |
---|
title | useHttp2 | linenumbers | true() |
---|
|
request.useHttp2(false); |