Runs a report generation process Runs a report generation process using the specified document template and an external data source in XML, JSON, or CSV format.
Runs a report generation process REST API
Server
Method
Endpoint
https://api.aspose.cloud/v4.0
PUT
/words/buildReport
You can use the following parameters in a REST request:
Parameter Name
Data Type
Required/Optional
Description
documentFileName
string
Optional
The filename of the output document, that will be used when the resulting document has a dynamic field {filename}. If it is not set, the “template” will be used instead.
Use $multipart/form-data
request to combine one or more properties into a single body:
Property Name
Data Type
Required/Optional
Description
template
string(binary)
Required
File with template
data
string
Required
A string providing a data to populate the specified template. The string must be of one of the following types: xml, json, csv
reportEngineSettings
ReportEngineSettings
Required
An object providing a settings of report engine.
Note : to access this REST API, you need to register and get personal credentials. Use the ‘
Quick Start ’ guide to go through the procedure in a couple of minutes.
Runs a report generation process usage examples
Let’s look at practical examples of using the web service. You can do this both with cURL and Postman utilities, and from your code in various programming languages: Python, Java, JavaScript, C#, PHP, C++, Go, Ruby, Swift, Dart.
How to runs a report generation process with cURL or Postman
One of the easiest and fastest ways to call a REST API is to use cURL or Postman:
cURL Request
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
curl -v "https://api.aspose.cloud/v4.0/words/buildReport" \
-X PUT \
-H "Content-Type: multipart/form-data" \
-H "Authorization: Bearer ####################" \
-F Template="@Sample.docx" \
-F Data="\"Data.json\"" \
-F ReportEngineSettings="{\"DataSourceType\":\"Json\",\"DataSourceName\":\"persons\"}"
To get a JWT token use these instructions
Postman Request
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{
"info": {
"name": "BuildReportOnline",
"schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
},
"auth": {
"type": "oauth2",
"oauth2": [
{
"key": "clientSecret",
"value": "{{CLIENT_SECRET}}",
"type": "string"
},
{
"key": "clientId",
"value": "{{CLIENT_ID}}",
"type": "string"
},
{
"key": "addTokenTo",
"value": "header",
"type": "string"
},
{
"key": "client_authentication",
"value": "body",
"type": "string"
},
{
"key": "accessTokenUrl",
"value": "https://api.aspose.cloud/connect/token",
"type": "string"
},
{
"key": "grant_type",
"value": "client_credentials",
"type": "string"
},
{
"key": "tokenName",
"value": "Access Token",
"type": "string"
}
]
},
"item": [
{
"name": "buildReportRequest",
"protocolProfileBehavior": {
"disableBodyPruning": true
},
"request": {
"method": "PUT",
"header": [
],
"body": {
"mode": "formdata",
"formdata": [
{
"key": "Template",
"type": "file",
"src": "Sample.docx"
},
{
"key": "Data",
"type": "text",
"value": "Data.json"
},
{
"key": "ReportEngineSettings",
"type": "text",
"value": "{\"DataSourceType\":\"Json\",\"DataSourceName\":\"persons\"}"
}
]
},
"url": {
"raw": "https://api.aspose.cloud/v4.0/words/buildReport",
"protocol": "https",
"host": [
"api",
"aspose",
"cloud"
],
"path": [
"v4.0",
"words",
"buildReport"
],
"query": [
]
}
},
"response": []
}
],
"variable": [
]
}
To get a JWT token use these instructions
How to runs a report generation process in Python, Java, C#, C++, JavaScript and other programming languages
Using SDK is the quickest way to speed up the development. Please take a look at the provided code examples to quickly call this web service from your favourite programming language:
Python
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import os
import asposewordscloud
import asposewordscloud.models.requests
from asposewordscloud.rest import ApiException
from shutil import copyfile
words_api = WordsApi(client_id = '####-####-####-####-####', client_secret = '##################')
request_template = open('Sample.docx', 'rb')
request_report_engine_settings = asposewordscloud.ReportEngineSettings(data_source_type='Json', data_source_name='persons')
build_report_request = asposewordscloud.models.requests.BuildReportOnlineRequest(template=request_template, data='Data.json', report_engine_settings=request_report_engine_settings)
words_api.build_report_online(build_report_request)
Java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import com.aspose.words.cloud.*;
import com.aspose.words.cloud.api.*;
import com.aspose.words.cloud.model.*;
import com.aspose.words.cloud.model.requests.*;
import com.aspose.words.cloud.model.responses.*;
import java.nio.file.Files;
import java.nio.file.Paths;
ApiClient apiClient = new ApiClient(/*clientId*/ "####-####-####-####-####", /*clientSecret*/ "##################", null);
WordsApi wordsApi = new WordsApi(apiClient);
byte[] requestTemplate = Files.readAllBytes(Paths.get("Sample.docx").toAbsolutePath());
ReportEngineSettings requestReportEngineSettings = new ReportEngineSettings();
requestReportEngineSettings.setDataSourceType(ReportEngineSettings.DataSourceTypeEnum.JSON);
requestReportEngineSettings.setDataSourceName("persons");
BuildReportOnlineRequest buildReportRequest = new BuildReportOnlineRequest(requestTemplate, "Data.json", requestReportEngineSettings, null);
wordsApi.buildReportOnline(buildReportRequest);
Node.js
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import * as fs from "fs";
const clientId = "####-####-####-####-####";
const secret = "##################";
const wordsApi = new WordsApi(clientId, secret);
const requestTemplate = fs.createReadStream("Sample.docx");
const requestReportEngineSettings = new model.ReportEngineSettings({
dataSourceType: model.ReportEngineSettings.DataSourceTypeEnum.Json,
dataSourceName: "persons"
})
const buildReportRequest = new model.BuildReportOnlineRequest({
template: requestTemplate,
data: "Data.json",
reportEngineSettings: requestReportEngineSettings
});
wordsApi.buildReportOnline(buildReportRequest)
.then((buildReportRequestResult) => {
// tslint:disable-next-line:no-console
console.log("Result of buildReportRequest: ", buildReportRequestResult);
});
C#
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Threading.Tasks;
using Aspose.Words.Cloud.Sdk;
using Aspose.Words.Cloud.Sdk.Model;
using Aspose.Words.Cloud.Sdk.Model.Requests;
var config = new Configuration { ClientId = "####-####-####-####-####", ClientSecret = "##################" };
var wordsApi = new WordsApi(config);
using var requestTemplate = File.OpenRead("Sample.docx");
var requestReportEngineSettings = new ReportEngineSettings()
{
DataSourceType = ReportEngineSettings.DataSourceTypeEnum.Json,
DataSourceName = "persons"
};
var buildReportRequest = new BuildReportOnlineRequest(requestTemplate, "Data.json", requestReportEngineSettings);
await wordsApi.BuildReportOnline(buildReportRequest);
PHP
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php
use Aspose\Words\WordsApi;
use Aspose\Words\Model\Requests\{BuildReportOnlineRequest};
use Aspose\Words\Model\{ReportEngineSettings};
$clientId = '####-####-####-####-####';
$secret = '##################';
$wordsApi = new WordsApi($clientId, $secret);
$requestTemplate = "Sample.docx";
$requestReportEngineSettings = new ReportEngineSettings(array(
"data_source_type" => "Json",
"data_source_name" => "persons",));
$buildReportRequest = new BuildReportOnlineRequest(
$requestTemplate, "Data.json", $requestReportEngineSettings, NULL);
$wordsApi->buildReportOnline($buildReportRequest);
C++
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include "aspose_words_cloud.h"
using namespace aspose::words::cloud;
auto config = std::make_shared<ApiConfiguration>(/*clientId*/ L"####-####-####-####-####", /*clientSecret*/ L"##################");
auto wordsApi = std::make_shared<WordsApi>(config);
auto requestTemplate = std::shared_ptr<std::istream>(new std::ifstream(std::filesystem::path(L"Sample.docx"), std::istream::binary));
auto requestReportEngineSettings = std::make_shared<aspose::words::cloud::models::ReportEngineSettings>();
requestReportEngineSettings->setDataSourceType(std::make_shared<aspose::words::cloud::models::ReportEngineSettings::DataSourceType>(aspose::words::cloud::models::ReportEngineSettings::DataSourceType::JSON));
requestReportEngineSettings->setDataSourceName(std::make_shared<std::wstring>(L"persons"));
std::shared_ptr<requests::BuildReportOnlineRequest> buildReportRequest(
new requests::BuildReportOnlineRequest(
requestTemplate, std::make_shared<std::wstring>(L"Data.json"), requestReportEngineSettings));
wordsApi->buildReportOnline(buildReportRequest);
Go
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{
"ClientId" : " ####-####-####-####-####" ,
"ClientSecret" : " ##################" ,
"BaseUrl" : " https://api.aspose.cloud"
}
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import (
"os"
"github.com/aspose-words-cloud/aspose-words-cloud-go/dev/api/models" )
config , _ := models .NewConfiguration ("config.json" )
wordsApi , ctx , _ := api .CreateWordsApi (config )
requestTemplate , _ := os .Open ("Sample.docx" )
requestReportEngineSettings := models.ReportEngineSettings {
DataSourceType : ToStringPointer ("Json" ),
DataSourceName : ToStringPointer ("persons" ),
}
buildReportRequestOptions := map [string ]interface {}{}
buildReportRequest := & models.BuildReportOnlineRequest {
Template : requestTemplate ,
Data : ToStringPointer ("Data.json" ),
ReportEngineSettings : & requestReportEngineSettings ,
Optionals : buildReportRequestOptions ,
}
_ , _ = wordsApi .BuildReportOnline (ctx , buildReportRequest )
Ruby
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
require 'aspose_words_cloud'
AsposeWordsCloud.configure do |config|
config.client_data['ClientId'] = '####-####-####-####-####'
config.client_data['ClientSecret'] = '##################'
end
@words_api = WordsAPI.new
request_template = File.open('Sample.docx')
request_report_engine_settings = ReportEngineSettings.new({:DataSourceType => 'Json', :DataSourceName => 'persons'})
build_report_request = BuildReportOnlineRequest.new(template: request_template, data: 'Data.json', report_engine_settings: request_report_engine_settings)
@words_api.build_report_online(build_report_request)
Swift
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import AsposeWordsCloud
let config = Configuration(clientId: "####-####-####-####-####", clientSecret: "##################");
let api = try WordsAPI(configuration: config);
let requestTemplate = InputStream(url: URL(string: "Sample.docx"))!;
let requestReportEngineSettings = ReportEngineSettings()
.setDataSourceName(dataSourceName: "persons")
.setDataSourceType(dataSourceType: ReportEngineSettings.DataSourceType.json);
let buildReportRequest = BuildReportOnlineRequest(template: requestTemplate, data: "Data.json", reportEngineSettings: requestReportEngineSettings);
_ = try api.buildReportOnline(request: buildReportRequest);
Dart
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import 'dart:io';
import 'package:aspose_words_cloud/aspose_words_cloud.dart';
final clientId = "####-####-####-####-####";
final clientSecret = "##################";
final config = Configuration(clientId, clientSecret);
final wordsApi = WordsApi(config);
final requestTemplate = (await File('Sample.docx').readAsBytes()).buffer.asByteData();
final requestReportEngineSettings = ReportEngineSettings();
requestReportEngineSettings.dataSourceType = ReportEngineSettings_DataSourceTypeEnum.json;
requestReportEngineSettings.dataSourceName = 'persons';
final buildReportRequest = BuildReportOnlineRequest(requestTemplate, 'Data.json', requestReportEngineSettings);
await wordsApi.buildReportOnline(buildReportRequest);
See Also
GitHub repository — explore Aspose.Words Cloud SDK Family. These software libraries take care of all low-level document-processing details.