Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Change the REST_message_record text from the examples below to the record name of your REST message

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

Tip

.

Tip

To know more about the sws object, please refer to the SimpleWS article.

SimpleRestRequest()


Initialises Initializes an empty SimpleRestRequest objectSimpleRestRequest object. When using such 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, an object is created with the sws prefix (see the code example below for clarification).


Parameter(s):

NameTypeMandatoryDefault Value
requestNameStringN''N
methodNameStringN''N


Info

Provide values to 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 empty empty SimpleRestRequest object object.


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
*/

constlet request = sws.restRequestV1();
// OR
let request = sws.restRequestV1('Telegram'Customer, Requests Notifier'Send Message');
request.setStringParameter('chat_id', 'send.direct.message'123456789');
request.setStringParameter('text', 'telegram');
//const 'Customerresponse Requests Notifier' - name of sys_rest_request
// 'send.direct.message' - name of sys_rest_request_method= 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()


Sends the REST request.


Return:

TypeDescription
SimpleRestResponseResponse to the message sent by the execute() methodThis 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 auth type authentication type was chosen. 


Parameter(s):

NameTypeMandatoryDefault Value
userNameStringYN
userPasswordStringYN


Return:

TypeDescription
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('https://your-instance-urlss.getProperty('simple.instance.uri') + '/v1/ajax-script/run');
request.setRequestMethod('POST');
request.setBasicAuth('admin', 'password');
request.setRequestBody(JSON.stringify(scriptJSON));
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 user login and password. The code uses example data for the the setRequestUrl() method and the payload constant. Replace it with the productive data before usage.

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)


Sets the request URL. To get request URL, use the getRequestUrl() method.


Parameter(s):

NameTypeMandatoryDefault Value
requestUrlStringYN


Return:

TypeDescription
VoidThis method does not return a value.


Example:

Code Block
languagejs
themeEclipse
titlesetRequestUrl
linenumberstrue
const request = sws.restRequestV1();
request.setRequestUrl('https://your-instance-urlinstance.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). Accepts Specify the requesting method name within the methodName parameter. To get the method name, use the getRequestMethod method.


Parameter(s):

NameTypeMandatoryDefault Value
methodNameStringYN


Return:

TypeDescription
VoidThis method does not return a value.


Example:

Code Block
languagejs
themeEclipse
titlesetRequestMethod
linenumberstrue
const request = sws.restRequestV1();
request.setRequestUrl('https://your-instance-urlinstance.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
timeoutIntegerYN


Return:

TypeDescription
VoidThis method does not return a value.


Example:

Code Block
languagejs
themeEclipse
titlesetRequestTimeout
linenumberstrue
const request = sws.restRequestV1();
request.setRequestUrl(`https'https://jsonplaceholderinstance.typicodeexample.com/v1/todos/1`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
valueStringYN


Return:

TypeDescription
VoidThis method does not return a value.


Example:

Code Block
languagejs
themeEclipse
titlesetQueryParameter
linenumberstrue
const smrequest = new sws.restRequestV1('REST_message_record', 'get);
request.setRequestUrl('https://instance.example.com/rest/v1/table/user');
request.setRequestMethod('GET');
request.setRequestHeader('Authorization', 'Bearer ' +   smnew SimpleUser().getAccessToken());
request.setQueryParameter('sysparm_query', 'active=true^ORDERBYDESCcategory');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):

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

NameTypeMandatoryDefault 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();const sm = new sws.RestRequest('<REST_request_record>','get'); 
      sm.setStringParameter('s','NOW');

setRequestHeader(name, value)


Sets the HTTP header in the request for 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
const scriptJSON = {
    "'script"': "'ss.info(new SimpleDateTime().getValue())"'
}
const request = sws.restRequestV1();
request.setRequestUrl('https://your-instance-urlinstance.example.com/v1/ajax-script/run');
request.setRequestMethod('POST');
request.setBasicAuth('adminusername', '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 request URL, use the setRequestUrl(requestUrl) method.


Return:

TypeDescription
StringThe request URlURL.


Example:

Code Block
languagejs
themeEclipse
titlegetRequestUrl
linenumberstrue
const smrequest = new sws.restRequestV1('REST_message_record', 'get();
request.setRequestUrl(ss.getProperty('simple.instance.uri') + '/v1/ajax-script/run');
const url = smrequest.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:

TypeDescription
StringThe request body.


Example:

Code Block
languagejs
themeEclipse
titlegetRequestBody
linenumberstrue
const sm = new 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('REST_message_recordDevOps Team Request', 'get'send_message_to_channel');
request.setRequestBody(JSON.stringify(dataJSON));
request.execute();
letconst body = smrequest.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 the requested headersrequest headers. To set request headers, use the setRequestHeader(name, value) method.


Return:

TypeDescription
ArrayThe requested headers.


Example:

Code Block
languagejs
themeEclipse
titlegetRequestHeaders
linenumberstrue
const smrequest = new sws.restRequestV1('REST_message_record);
request.setRequestHeader('Content-type', 'getapplication/json');
const headersheader = smrequest.getRequestHeaders();
ss.info(header);
// Info: {"content-type":["application\/json"]}

getRequestMethod()


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


Return:

TypeDescription
StringThe method name.


Example:

Code Block
languagejs
themeEclipse
titlegetRequestMethod
linenumberstrue
const smrequest = new sws.restRequestV1('REST_message_record', 'get);
request.setRequestMethod('GET');
const method = smrequest.getRequestMethod();
ss.info(method);
//Info: GET


Table of Contents
absoluteUrltrue
classfixedPosition