You are viewing an old version of this page. View the current version.
Compare with Current View Page History
« Previous Version 9 Next »
Use this server class to work with the REST API methods and parameters.
SimpleRestRequest object
To create a SimpleRestRequest object, use the sws.restRequestV1 method as described below.
Parameter(s):
Name | Type | Mandatory | Default value |
---|---|---|---|
requestName | String | N | '' |
methodName | String | N | '' |
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 object. |
Example:
/* Create a '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(content, paramName, fileName)
The method prepares a file in binary format for sending 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 the binary data. |
fileName | String | Y | N | The file name. |
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:
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();
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:
Type | Description |
---|---|
SimpleRestResponse | This method returns a SimpleRestResponse object. |
Example:
const request = sws.restRequestV1(); request.setRequestUrl(`https://jsonplaceholder.typicode.com/todos/1`); request.setRequestMethod('GET'); const response = request.execute();
setBasicAuth(userName, userPassword)
Use this methos to set a user name a password to authorize on a web service if the resource requires basic authorization
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:
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.
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 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:
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 |
---|---|---|---|
methodName | String | Y | N |
Return:
Type | Description |
---|---|
Void | This method does not return a value. |
Example:
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):
Name | Type | Mandatory | Default value |
---|---|---|---|
timeout | Integer | Y | N |
Return:
Type | Description |
---|---|
Void | This method does not return a value. |
Example:
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):
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:
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):
Name | Type | Mandatory | Default value |
---|---|---|---|
body | String | Y | N |
Return:
Type | Description |
---|---|
Void | This method does not return a value. |
Example:
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 a name specified in the name parameter into 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:
/* 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):
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:
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 the setRequestUrl(requestUrl) method.
Return:
Type | Description |
---|---|
String | The request URL. |
Example:
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:
Type | Description |
---|---|
String | The request body. |
Example:
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:
Type | Description |
---|---|
Array | The requested headers. |
Example:
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:
Type | Description |
---|---|
String | The method name. |
Example:
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.
Using this methods requires the host that also supports the HTTP/2 protocol.
Parameter(s):
Name | Type | Mandatory | Default value |
---|---|---|---|
value | boolean | N | true |
Return:
Type | Description |
---|---|
Void | This method does not return a value. |
Example:
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.
request.useHttp2(false);
- No labels