You are viewing an old version of this page. View the current version.
Compare with Current View Page History
« Previous Version 5 Next »
Here you can download a file with example configurations for the scripted REST API: [SOC] - Scripted REST API. Import the pack to your instance and try the following example settings.
Example 1. Get a system property value without authorization
To verify the example:
- Go to the main page of your instance.
- Add to the URL bar the following value: /v1/api/c_simple/api_module_path/api_action_path?param_1=value_1.
- Copy the result URL.
- Go to the URL in Incognito mode.
As a result, you receive a response from the API action /record/sys_api_action/164054047017513732 with a system property value simple.auth_page.support_phone.
Example 2. Create a task record with an attachment
To verify the example:
- Open the record /record/sys_script/164053985417710860 .
- Click Run to run the script.
As a result, you receive a response from the API action /record/sys_api_action/161831494014244852.
On the bottom of the script form, there is a link to the created task record. See the screenshot below:
The record contains two attachments with base 64 files transferred in lines 14-15 of the script in Step 1. See the screenshot below:
Example 3. Create an attachment
You can create attachments using Scripted REST API. To pass file content, use the base64 format. To get a file content in base64 format, use the readBase64(attachmentId) method.
To send an attachment with the Scripted Rest API, do the following:
Create an API action to operate POST requests with the attached content.
Script example for an API action Expand source(function (request, response) { const data = request.getBody(); const TABLE_ID = data.table_id; const RECORD_ID = data.record_id; const RECORD_DOC_ID = ss.getDocIdByIds(TABLE_ID, RECORD_ID); const attachments = data.attachments; const simpleAttach = new SimpleAttachment(); let createdAttachmentIds = []; Object.keys(attachments).forEach(attachment => { createdAttachmentIds.push(simpleAttach.writeBase64(RECORD_DOC_ID, ...attachments[attachment])); }); response.setBody(createdAttachmentIds); }) (SimpleApiRequest, SimpleApiResponse)
Create a script to send the requests.
A script example to send a POST request Expand sourceconst API_ACTION_URL = ''; // https://docs.simpleone.ru/display/SAPI/Configuring+Scripted+REST+API#ConfiguringScriptedRESTAPI-ScriptedRESTAPIURIs const payloadRequest = sws.restRequestV1(); payloadRequest.setRequestUrl(API_ACTION_URL); payloadRequest.setRequestMethod('POST'); payloadRequest.setRequestHeader('Content-type', 'application/json'); const payload = { table_id: '155931135900000084', // user table ID record_id: '155931135900000001', // admin record ID record attachments: { 1: ['file_example.gif', 'R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=', 'image/gif'] } } payloadRequest.setRequestBody(JSON.stringify(payload)); const response = payloadRequest.execute().getBody(); print('Response: ' + response);
For more information see the Configuring Scripted REST API article.
Features and recommendations
- API action script is executed regardless of ACL.
- Authorization of requests to the Scripted REST API is not possible with Basic Auth. To authorize, use the solution described above in the Authorization section.
- A reply to the API action containing a key error with a value Undefined index: SimpleApiResponse means the script API action contains an error.
- To avoid data corruption, convert JSON data type into type String using a JSON.stringify() method.
- If the execution time of the API action script exceeds the Timeout, move a part of the script to the Event Script and call a system event with an API action script.
- No labels