User Guide: SDKs > VoltMX Iris SDK > Binary APIs
Binary APIs
Volt MX Foundry SDK offer a different set of API to work with binary data on integration and object service. The APIs allow uploading and downloading binary data from different data providers such as Amazon S3, Box etc.
Online binary API allows downloading the files as a whole (typically small image files), in chunks (large pdfs or videos) or in streaming mode (raw bytes).
Note: For SPA/Desktop Web, SDK supports Binary APIs from release version V8 SP3 for Box adapter.
For Android and iOS, the Binary APIs are supported from V8 SP2 for Box adapter.
Integration Service APIs
Download API
The getBinaryData API allows users to download binary objects such as PDF, Document or any other files.
Syntax
getBinaryData(operationName, downloadParams, streaming, headers, fileDownloadStartedCallback, chunkDownloadCompletedCallback, fileDownloadCompletedCallback, fileDownloadFailureCallback, options);
Parameters
Parameter | Type | Description |
---|---|---|
operationName | String | Integration service operation that provides the binary details. The parameter is used as part of Integration Service. |
downloadParams | JSON | Download related parameters required for downloading the binary. |
Streaming | Boolean | Boolean flag to determine if the required data must be sent in chunks or a file after download. |
headers | Provision to send custom headers. | |
fileDownloadCompletedCallback | True/False | The callback is invoked after successful file download with the file path. The parameter is mandatory if the streaming is false. |
chunkDownloadCompletedCallback | True/False | The callback is invoked after each successful chunk download. The parameter is invoked when the streaming is true. The callback is mandatory if the streaming is true. |
fileDownloadCompletedCallback | True/False | The callback is invoked after successful file download with the file path. The parameter is mandatory if the streaming is false. |
fileDownloadFailureCallback | Callback invoked in case of download failure. | |
options | Optional parameters are sent from this parameter. ChunkSize can be sent from this parameter. The parameter is used as part of Integration Service. |
Options
Options | Type | Description | Mandatory |
---|---|---|---|
ChunkSize | String | ChunkSize option allows to download the binary in chunks of given size. If a value is not specified, the default value is used. Default size is 1048576. | No |
Note: It is mandatory to pass all its parameters defined on the service.
Sample Code
function fileDownloadStartedCallback(res) {
//Callback
}
function chunkDownloadCompletedCallback(res) {
//Callback
}
function fileDownloadCompletedCallback(res) {
//Callback
}
function fileDownloadFailureCallback(err) {
//Callback
}
var downloadParams = {};
var serviceName = "integration_service_name";
// Get an instance of SDK
var client = voltmx.sdk.getCurrentInstance();
var operationName = "operation_name";
// Adapter specific parameters (Mentioned below)
var integrationSvc = client.getIntegrationService(serviceName);
var streaming = false;
integrationSvc.getBinaryData(operationName,
downloadParams,
streaming, {},
//Provision for user defined headers
fileDownloadStartedCallback,
chunkDownloadCompletedCallback,
fileDownloadCompletedCallback,
fileDownloadFailureCallback);
Note: For Android and iOS platforms, filePath or base64 chunk data is provided based on the streaming flag. For DesktopWeb Blob object is specified in successCallback.
Upload API
The uploadBinaryData API allows users to upload binary objects such as PDF, Document or any other files.
Syntax
uploadBinaryData(operationName, uploadParams, fileUploadStartedCallback, chunkUploadCompletedCallback, fileUploadCompletedCallback, fileUploadFailureCallback)
Parameters
Parameters | Type | Description |
---|---|---|
operationName | String | Integration Service Operation which provides the binary details. The parameter is used as part of Integration Service. |
uploadParams | JSON | upload related parameters required for uploading binary. The parameter is used as part of Integration Service. |
fileUploadStartedCallback | The callback is invoked when the upload starts. | |
chunkUploadCompletedCallback | The callback is invoked when the upload of a chunk is completed. The parameter is applicable for backends that support chunked upload. | |
fileUploadCompletedCallback | The callback is invoked when the upload completes. | |
fileUploadFailureCallback | The callback is invoked when the upload fails (for any reason). |
Note: It is mandatory to specify either FilePath or rawBytes for upload in the uploadParams parameter. Both parameters are NOT allowed together.
FilePath must contain a fully qualified path of a valid file present on the device.
rawBytes contains the raw bytes to be uploaded. An obvious usage is capturing an image using camera and uploading the same.
fileObject is accepted for DesktopWeb. fileObject is the output of Browse API and is the instance of File.
Common Parameters
uploadParams | Type | Description | Mandatory |
---|---|---|---|
fileName | String | The valid file name of the file to be uploaded with the proper extension. | Yes |
FilePath | String | Fully qualified path of a valid file present on the mobile device. | Yes (if rawBytes are not provided) |
rawBytes | String | Raw bytes of file to be uploaded | Yes (if FilePath is not provided) |
fileObject | File | Output of the Browser API provided by HCL or the browser is a reference to the file in the device. | Yes (for DesktopWeb) |
Note: It is mandatory to pass all its parameters defined on the service.
Sample Code
function fileUploadStartedCallback(res) {
//Callback
}
function chunkUploadCompletedCallback(res) {
//Callback
}
function fileUploadCompletedCallback(res) {
//Callback
}
function fileUploadFailureCallback(err) {
//Callback
}
var uploadParams = {};
var serviceName = "integration_service_name";
// Get an instance of SDK
var client = voltmx.sdk.getCurrentInstance();
var operationName = "operation_name";
// Adapter specific parameters (Mentioned below)
var integrationSvc = client.getIntegrationService(serviceName);
integrationSvc.uploadBinaryData(operationName,
uploadParams,
fileUploadStartedCallback,
chunkUploadCompletedCallback,
fileUploadCompletedCallback,
fileUploadFailureCallback);
Object Service APIs
Download API
The getBinaryData API allows users to download binary objects such as PDF, Doc or any other files.
Syntax
getBinaryData(options,fileDownloadStartedCallback, chunkDownloadCompletedCallback, fileDownloadCompletedCallback, fileDownloadFailureCallback)
Parameters
Parameter | Type | Description |
---|---|---|
options | JSON | Accepts a JSON object on which the binary is downloaded. |
fileDownloadStartedCallback | JSON | The callback is invoked after the file download starts. |
chunkDownloadCompletedCallback | True/False | The callback is invoked after each successful chunk download. The parameter is invoked when the streaming is true. The callback is mandatory if the streaming is true. |
fileDownloadCompletedCallback | True/False | The callback is invoked after successful file download with the file path. The parameter is mandatory if the streaming is false. |
fileDownloadFailureCallback | True/False | The callback is invoked in case of download failure. |
Options
Options | Type | Description | Mandatory | Default |
---|---|---|---|---|
dataObject | String | Instance of voltmx.sdk.dto.DataObject | Yes | |
streaming | Boolean | Boolean flag to determine whether the data needed to be given to chunks or a file after download | No | False |
queryParams | provision for the user to specify the additional query params to be sent in the download call. | No | Null | |
headers | Provision for sending custom headers. | No | Null | |
chunkSize | chunk size to download | No | 1048576 |
Sample Code
var downloadParams = {};
// Adapter specific parameters (Mentioned below)
var objSvc = voltmx.sdk.getCurrentInstance().getObjectService("serviceName");
var dataObject = new voltmx.sdk.dto.DataObject("binaryObjectName");
dataObject.setRecord(downloadParams);
objSvc.getBinaryData({
"dataObject": dataObject
},
function(response) {
voltmx.print("fileDownloadStartedCallback: " + JSON.stringify(response));
},
function(response) {
voltmx.print("chunkDownloadCompleteCallback: " + JSON.stringify(response));
},
function(response) {
voltmx.print("fileDownloadCompleteCallback: " + JSON.stringify(response));
},
function(response) {
voltmx.print("fileDownloadFailureCallback: " + JSON.stringify(response));
});
Note: It is mandatory to pass all its parameters defined on the service.
Note: For Android and iOS platforms, filePath or base64 chunk data is provided based on the streaming flag. For DesktopWeb Blob object is specified in successCallback.
Upload API
The uploadBinaryData API allows users to download binary objects such as PDF, Doc, or any other files.
Syntax
uploadBinaryData(options, fileUploadStartedCallback, chunkUploadCompletedCallback, fileUploadCompletedCallback, fileUploadFailureCallback)
Parameters
Parameter | Type | Description |
---|---|---|
options | JSON | The JSON object, based on the binary uploaded. |
fileUploadStartedCallback | The callback is invoked when the upload starts. | |
chunkUploadCompletedCallback | The callback is invoked when the upload of a chunk is completed. The parameter is applicable for backends that support chunked upload. | |
fileUploadCompletedCallback | The callback is invoked when the upload completes. | |
fileUploadFailureCallback | The callback is invoked when the upload fails (for any reason). The JSON object specified under options is a voltmx.sdk.dto.DataObject containing relevant parameters for upload. |
Options
Options | Type | Description | Mandatory |
---|---|---|---|
dataObject | Instance of voltmx.sdk.dto.DataObject | Yes |
Common Parameters
uploadParams | Type | Description | Mandatory |
---|---|---|---|
fileName | String | The valid file name of the file to be uploaded with the proper extension. | Yes |
FilePath | String | Fully qualified path of a valid file present on the mobile device. | Yes (if rawBytes are not provided) |
rawBytes | String | Raw bytes of file to be uploaded | Yes (if FilePath is not provided) |
fileObject | File | Output of the Browser API provided by HCL or the browser is a reference to the file in the device. | Yes (for DesktopWeb) |
Note: It is mandatory to pass all its parameters defined on the service.
Sample Code
var uploadParams = {};
var client = voltmx.sdk.getCurrentInstance();
var objectSvc = voltmxClient.getObjectService("serviceName");
var dataObject = new voltmx.sdk.dto.DataObject("binaryObjectName");
dataObject.setRecord(uploadParams);
objectSvc.uploadBinaryData({
"dataObject": dataObject
},
function(response) {
voltmx.print("fileUploadStartedCallback: " + JSON.stringify(response));
},
function(response) {
voltmx.print("chunkUploadCompleteCallback: " + JSON.stringify(response));
},
function(response) {
voltmx.print("fileUploadCompleteCallback: " + JSON.stringify(response));
},
function(response) {
voltmx.print("fileUploadFailureCallback: " + JSON.stringify(response));
});