应用说明
应用针对某一场景创建,它由多个仪表盘组成。 应用包含了用户一次探索所需要的全部数据、图表以及关系模型,非常适合作为日常工作的一个封装概念。
应用的定义
应用结构说明
字段 | 类型 | 描述 |
---|---|---|
id | LONG | 应用的 id |
title | STRING | 应用的标题 |
options | OBJECT | 应用的配置信息 |
options.dashboards | NUMBER 数组 | 此应用下的仪表盘 id 列表 |
options.charts | NUMBER 数组 | 此应用下的图表 id 列表 |
options.datasets | NUMBER 数组 | 此应用下的数据集 id 列表 |
options.dashboardsOrder | NUMBER 数组 | 此应用下的仪表盘的显示顺序 |
options.enableAppRule | BOOL | 是否启用行权限控制 |
options.publishConfig | OBJECT | 此应用的发布设置,只在发布的应用中启用 |
options.publishConfig.publishTitle | STRING | 发布的应用标题 |
options.publishConfig.publisher | STRING | 发布的用户名 |
options.publishConfig.coverImageId | NUMBER | 发布的应用的封面图片 id |
options.publishConfig.watermarkImageId | NUMBER | 发布的应用的水印图片 id |
options.publishConfig.duplicatedPermitted | BOOL | 发布的应用是否允许复制数据集 |
options.publishConfig.showDetailPermitted | BOOL | 只读模式下访问应用是否允许显示详情 |
options.publishConfig.downloadPermitted | BOOL | 只读模式下访问应用是否允许下载数据 |
options.publishConfig.zoomInPermitted | BOOL | 只读模式下访问应用是否下钻 |
options.publishConfig.targetFolderId | LONG | 发布的目录 id |
options.publishConfig.description | STRING | 发布应用描述 |
options.publishConfig.foldersTitle | STRING 数组 | 发布的目录路径名称 |
options.publishConfig.publisherDisplayConfig | OBJECT | 此应用的发布者显示配置 |
options.publishConfig.publisherDisplayConfig.id | LONG | 发布者 id |
options.publishConfig.publisherDisplayConfig.type | STRING | 发布者类型 |
options.publishConfig.publisherDisplayConfig.name | STRING | 发布者名称 |
options.appTemplateUUID | STRING | 应用模版的 uuid,只在导入、导出模版用到,不存库 |
options.filters | OBJECT数组 | 全局过滤器列表 |
isPublish | BOOL | 应用是不是发布区的应用 |
publishHash | STRING | 应用发布的哈希值 |
publishedBy | NUMBER | 发布区应用的源应用 id |
folderId | LONG | 应用所在的文件夹 id |
area | STRING | 应用所在的区域,可选值参照area值说明 |
shareHash | STRING | 分享应用的哈希值 |
dataMode | STRING | 应用的数据权限,可选值参照dataMode 值说明 |
entityGroup | STRING | 邮件自动推送的执行计划类别,用于管理执行计划,固定为APP_EMAIL |
entityKey | STRING | 邮件自动推送的执行计划关键字,用于管理执行计划 |
execDetail | OBJECT | 创建邮件推送执行计划需要用到的任务描述信息,详见执行计划 |
refreshEntityGroup | STRING | 应用数据集刷新的执行计划类别,用于管理执行计划,固定为APP_REFRESH |
refreshExecDetail | OBJECT | 创建数据集刷新执行计划需要用到的任务描述信息,详见执行计划 |
hsVersion | INTEGER | 可选,本次编辑的版本号,从0开始,修改前先GET待修改资源获取当前版本号,修改时带上刚刚获取的版本号,服务端会检查并发冲突。不带版本号不检查并发冲突。 |
tenantId | LONG | 可选, 租户id |
type | STRING | 应用类型, 可选值参照appType值说明 |
defaultDataset | LONG | 可选,应用中用于做图的默认数据集 |
publishState | BOOL | 创作区的应用是否发布 |
latestAuthorizedBy | LONG | 应用最近一次的授权者 |
latestAuthorizedAt | DATE | 应用最近一次授权时间 |
latestPublishedBy | LONG | 应用最近一次的发布者 |
latestPublishedAt | DATE | 应用最近一次发布时间 |
area 值说明
字段值 | 描述 |
---|---|
PERSONAL_AREA | 应用创作区的个人区 |
PUBLIC_AREA | 应用创作区的共享区 |
DATA_MART | 数据集市 |
APP_MART | 应用集市 |
dataMode 值说明
字段值 | 描述 |
---|---|
APP_MODE | 应用作者 |
DATASET_MODE | 数据集作者 |
VIEWER_MODE | 使用者 |
appType 值说明
字段值 | 描述 |
---|---|
ANALYTIC_APP | 常用应用,用于分析场景 |
QUERY_APP | 查询应用,用于自助查询场景 |
DATA_APP | 数据包,用于数据集市区处理数据集 |
REPORT_APP | 报表应用 |
接口说明
创建应用
请求URL
http
POST /api/apps HTTP/1.1
Content-Type: application/json
Cookie: csrf=183f1c4...; sid=26ee552d...; _USER_SESSION_ID=f2a01083...
请求参数
request body 请求体
字段 | 类型 | 描述 |
---|---|---|
title | STRING | 应用的标题 |
folderId | LONG | 应用所在的文件夹 id, 应用创作共享空间的根目录 id 为 1, 数据集市的根目录 id 为 2 |
area | STRING | 应用所在区域,需与folderId对应的目录所在区域一致,默认为PERSONAL_AREA |
返回对象的格式说明
接口示例1 在应用创作区新建应用
RequestResponse
http
POST /api/apps HTTP/1.1
Content-Type: application/json
Cookie: csrf=183f1c4...; sid=26ee552d...; _USER_SESSION_ID=f2a01083...
// Request Body:
{
"title": "应用名称",
"options": {
"dashboardsOrder": [],
"themes": {}
}
}
接口示例2 在应用创作共享空间根目录下创建应用
http
POST /api/apps HTTP/1.1
Content-Type: application/json
Cookie: csrf=183f1c4...; sid=26ee552d...; _USER_SESSION_ID=f2a01083...
// Request Body:
{
"folderId": 1,
"title": "应用名称",
"area": "PULIC_AREA",
"options": {
"dashboardsOrder": [],
"themes": {}
}
}
接口示例3 在应用集市团队空间根目录下创建应用
http
POST /api/apps HTTP/1.1
Content-Type: application/json
Cookie: csrf=183f1c4...; sid=26ee552d...; _USER_SESSION_ID=f2a01083...
// Request Body:
{
"folderId": 2,
"title": "应用名称",
"area": "SYSTEM_PORTAL",
"options": {
"dashboardsOrder": [],
"themes": {}
}
}
接口示例4 在应用创作下创建自助查询应用
http
POST /api/apps HTTP/1.1
Content-Type: application/json
Cookie: csrf=183f1c4...; sid=26ee552d...; _USER_SESSION_ID=f2a01083...
// Request Body:
{
"title": "应用名称",
"options": {
"dashboardsOrder": [],
"themes": {}
},
"type": "QUERY_APP"
}
查询应用
查询用户能看到的应用列表,在应用集市和应用创作区使用。
请求URL
http
GET /api/apps HTTP/1.1
Accept: application/json
Cookie: csrf=183f1c4...; sid=26ee552d...; _USER_SESSION_ID=f2a01083...
请求参数
URL 参数
字段 | 类型 | 是否必须 | 说明 |
---|---|---|---|
publish | BOOLEAN | 是 | 获取应用集市区应用时设置为 true,获取应用协作区应用时设置为 false |
orderBy | String | 否 | 排序字段 |
pOrCByCurrent | BOOLEAN | 否 | 应用集市区,查询 "我发布的" 应用时设置为 true, "发布给我的" 应用时设置为 false;应用协作区,查询"我协作的" 应用时设置为 true, "协作给我的" 应用时设置为 false |
createdByCurrent | BOOLEAN | 否 | 查询 "我创建的" 应用时设置为 true,"协作给我的" 应用时设置为false,用于应用创作区 |
showHide | BOOLEAN | 是 | 是否显示隐藏的应用,用于应用集市区 |
queryAll | BOOLEAN | 是 | 是否显示全部应用 |
ids | String | 否 | 要查询的应用id列表,用逗号隔开如:1,2,3,4 |
返回对象的格式说明
接口示例1
RequestResponse
http
GET /api/apps?pOrCByCurrent=false&offset=0&limit=20&orderBy=updatedAt&orderType=desc HTTP/1.1
Accept: application/json
Cookie: csrf=183f1c4...; sid=26ee552d...; _USER_SESSION_ID=f2a01083...
根据ID查询应用
请求URL
http
GET /api/apps/{appId} HTTP/1.1
Accept: application/json
Cookie: csrf=183f1c4...; sid=26ee552d...; _USER_SESSION_ID=f2a01083...
请求参数
URL 参数
字段 | 类型 | 是否必须 | 说明 |
---|---|---|---|
appId | INTEGER | 是 | 指定应用的 id |
checkStatus | BOOLEAN | 否 | 是否检查发布态应用的状态,若为true且发布态应用处于暂停服务状态,则报错 |
返回对象的格式说明
接口示例1 查询 id 为 1 的应用
RequestResponse
http
GET /api/apps/1 HTTP/1.1
Accept: application/json
Cookie: csrf=183f1c4...; sid=26ee552d...; _USER_SESSION_ID=f2a01083...
更新应用
请求URL
http
PUT /api/apps/{appId} HTTP/1.1
Content-Type: application/json
Cookie: csrf=183f1c4...; sid=26ee552d...; _USER_SESSION_ID=f2a01083...
请求参数
URL 参数
字段 | 类型 | 是否必须 | 说明 |
---|---|---|---|
appId | INTEGER | 是 | 指定应用的 id |
request body 请求体
应用结构说明, 可以被修改的内容见下表:
字段 | 类型 | 描述 |
---|---|---|
title | STRING | 应用的标题 |
options.enableAppRule | BOOL | 是否启用行权限控制 |
options.publishConfig.showDetailPermitted | BOOL | 只读模式下访问应用是否允许显示详情 |
options.publishConfig.downloadPermitted | BOOL | 只读模式下访问应用是否允许下载数据 |
options.publishConfig.zoomInPermitted | BOOL | 只读模式下访问应用是否下钻 |
dataMode | STRING | 应用的数据权限,可选值参照dataMode 值说明 |
folderId | LONG | 应用目录id,若与当前不一致,则视为移动应用操作,会检查是否可移动与权限 |
返回对象的格式说明
接口示例1 更新 id 为 1 的应用标题
http
PUT /api/apps/1 HTTP/1.1
Content-Type: application/json
Cookie: csrf=183f1c4...; sid=26ee552d...; _USER_SESSION_ID=f2a01083...
// Request Body:
{
"title": "wewe",
"hsVersion": 1
}
接口示例2 启用 id 为 1 的应用行权限规则
http
PUT /api/apps/1 HTTP/1.1
Content-Type: application/json
Cookie: csrf=183f1c4...; sid=26ee552d...; _USER_SESSION_ID=f2a01083...
// Request Body:
{
"dataMode": "APP_MODE",
"options": {
"dashboards": [
1,
2
],
"datasets": [
7
],
"dashboardsOrder": [
1,
2
],
"enableAppRule": true,
"publishConfig": {
"zoomInPermitted": true,
"showDetailPermitted": true,
"downloadPermitted": true,
"totalPages": {},
"duplicatedPermitted": false
}
},
"hsVersion": 1
}
删除应用
请求URL
http
DELETE /api/apps/{appId} HTTP/1.1
请求参数
URL 参数
字段 | 类型 | 是否必须 | 说明 |
---|---|---|---|
appId | INTEGER | 是 | 指定应用的 id |
返回对象的格式说明
字段 | 类型 | 说明 |
---|---|---|
version | STRING | 当前系统版本哈希值 |
msg | STRING | 成功返回 success |
运行图表获取数据
根据图表配置信息获取图表数据。
请求URL
http
POST /api/apps/{appId}/chart-data HTTP/1.1
Content-Type: application/json
Cookie: csrf=183f1c4...; sid=26ee552d...; _USER_SESSION_ID=f2a01083...
请求参数
URL 参数
字段 | 类型 | 说明 |
---|---|---|
appId | NUMBER | 必填 |
Request Body 参数
图表的配置信息,详见图表结构说明
返回对象的格式说明
接口示例1
以下是一个按