Table of Contents |
---|
Introduction
The Enhanced JSON API plugin includes bundles built from the default JSON API, with added features such as support for system proxy settings, API tokens, customizable socket timeout retries, response formatting, additional PUT and PATCH request call. The default JSON API consists of:
Plugin Info
Plugins Available in the Bundle:
...
This plugin bundle is compatible with Joget DX 8 and onwards.
Expected Outcome
To be able to work with JSON API calls through form binder, form options binder, list binder and process tool.
Get Started
Steps
Where to get the plugin
...
Figure 5: Access token in cache
Enhanced JSON API Properties
Enhanced JSON API
Note | ||
---|---|---|
| ||
This plugin's configuration is identical to the bundled JSON API, only with the additional configurable properties below, which the name of the fields are in green. |
...
Figure 6: Enhanced JSON API (Authentication)
Name | Description |
---|---|
Retrieve and Use Access Token | If checked, access token will be included in the request headers. Use "{accessToken}" to access the value in the request headers. |
Token URL * | URL to retrieve the token from. |
Request Type | Select the call type:
|
Access Token JSON Field Name * | The field name of the request call to retrieve access token from. |
Store Access Token in Cache | If checked, access token will be stored in cache. If token is not expired, it will retrieve from cache instead of performing another request call. |
Access Token Cache Expiry Time (minutes) * | The duration set for the cache to expire before making another request becomes necessary. |
Request
Figure 7: Enhanced JSON API (Request)
Name | Description |
---|---|
JSON URL * | URL to be called. |
Call Type | Select the call type:
|
Request Headers | Add name(s) and value(s) to the request header. |
Response
Figure 8: Enhanced JSON API (Response)
Figure 9: Enhanced JSON API - Store Response Status (Response)
Name | Description | ||||||
---|---|---|---|---|---|---|---|
Connection Timeout (seconds) | Specifies the maximum time (in seconds) that the client will wait to establish a connection with the server. If the connection cannot be established within this time, an error will be thrown and logged. | ||||||
Socket Timeout (seconds) | Specifies the maximum time (in seconds) that the client will wait for a server response after the connection is established. If no response is received within this time, an error will be thrown and logged. | ||||||
Debug Mode | Show relevant debug entries in the server log for debugging purposes. | ||||||
Response Type | Types of response format
| ||||||
Format Response | Header. If Response Type is JSON, this section will be visible. | ||||||
Enable Response Formatting | When checked, you can start writing a BeanShell script to format/post-process the JSON response. | ||||||
Script | The "Enable Response Formatting" property must be enabled in order to write the BeanShell script here. Injected Variables:
Expected Return Object: It is expected to return a Map object that would later on be processed as configured to store to form and/or workflow variables. Example: Return the response only for the first item in a JSON array with the object name "apps".
| ||||||
Store to Form | Header. If Response Type is JSON, this section will be visible. | ||||||
Form | Select the target form to store data. | ||||||
Base JSON Object Name for Multirow Data | Name of the object that contains an array to be based on. | ||||||
Field Mapping | Mapping with JSON data with Form fields.
| ||||||
Store to Workflow Variable | Header. If Response Type is JSON, this section will be visible. | ||||||
Workflow Variable Mapping |
| ||||||
Store Attachment | Header. If Response Type is File, this section will be visible. | ||||||
Form | Recommended to use a child form with foreign key to main record as in a single JSON call, data may be returned successfully but fails in parsing to JSON format. | ||||||
File Upload Field | Fill in to use as foreign key to main record. Leave it blank to save form record ID into column "ID". When it is blank and there are multiple logs, logs will be overwritten and only the last entry will be visible. | ||||||
Store Response Status | Header. | ||||||
Workflow Variable to Store Response Status | Workflow variable name to store response status value. | ||||||
Form | Recommended to use a child form with foreign key to main record as in a single JSON call, data may be returned successfully but fails in parsing to JSON format. | ||||||
Response Field ID | Fill in to use as foreign key to main record. Leave it blank to save form record ID into column "ID". When it is blank and there are multiple logs, logs will be overwritten and only the last entry will be visible. | ||||||
Response Status Field * | Field to store response status. | ||||||
Response Data Field | Field to store reponse data. | ||||||
Base JSON Object Name for Multirow Data | Name of the object that contains an array to be based on. | ||||||
Field Mapping |
|
| |||||||
Field Mapping for Additional Attributes | To record additional attributes manually to provide clear insights on requests for audit purposes. For example, we set the table as: origin : appABC
|
Source Code and Plugin Download
...