6. 报表 REST API
通用 REST API 为报表扩展提供以下功能:
-
获取报表列表。
-
获取特定报表的详细信息。
-
运行报表并获取结果。
-
获取 Swagger 文档。
REST API 使用 OAuth2 协议进行身份验证,并支持匿名访问。
要通过 REST API 提供报表,请在 Roles and Screens 标签页上选中 Visible for REST API 复选框:
Figure 67. Visible for REST API 复选框
下面提供了一些报表特定功能的一般描述。有关如何获取 OAuth 令牌和其它 REST API 功能的更多信息,请参阅 REST API 扩展文档 。
- 获取现有报表列表
-
可以使用以下 GET 请求获取现有报表列表:
/rest/reports/v1/report
例如:
GET http://localhost:8080/app/rest/reports/v1/report HTTP/1.1 Authorization: Bearer f5a2b4b1-a121-4563-9519-dd3c0b116689 Content-Type: application/json
响应体将包含标记为 Visible for REST API 的报表的简要信息:
{ "id": "2dd27fbf-8830-416a-899f-339543f8f27a", "name": "Books by author" }, { "id": "2f07c9fe-5d6d-48cf-876f-8c02ac1f6c3c", "name": "Book availability in department" }
- 获取报表信息
-
使用以下 GET 请求获取指定报表的详细信息:
/rest/reports/v1/report/{id}
这里查询的最后一部分是报表标识符,例如:
GET http://localhost:8080/app/rest/reports/v1/report/2dd27fbf-8830-416a-899f-339543f8f27a HTTP/1.1
返回的 JSON 对象将包含报表的以下信息:
{ "id": "2dd27fbf-8830-416a-899f-339543f8f27a", "name": "Books by author", "templates": [ { "code": "DEFAULT", "outputType": "XLS" } ], "inputParameters": [ { "name": "Author", "alias": "author", "type": "ENTITY", "required": true, "hidden": false, "entityMetaClass": "library$Author" } ] }
- 运行报表
-
要运行报表,请发送以下 POST 请求:
/rest/reports/v1/run/{id}
这里查询的最后一部分是报表标识符,例如:
POST http://localhost:8080/app/rest/reports/v1/run/2dd27fbf-8830-416a-899f-339543f8f27a HTTP/1.1
报表参数在请求体中被传递:
{parameters: [{name: 'author',value: '4b3a21b0-d6b7-4161-b0b6-55f118fbaac5'}]}
要使用非默认模板打印报表,请在请求体中传递模板代码:
{template: 'Template_1', parameters: [{name: 'author',value: '4b3a21b0-d6b7-4161-b0b6-55f118fbaac5'}]}
- 获取 Swagger 文档
-
可以通过 GET 请求此地址获取报表扩展的完整 Swagger 文档:
http://localhost:8080/app/rest/reports/v1/docs/swagger.json