1. 应用

1.1. 应用说明

应用针对某一场景创建,它由多个仪表盘组成。 应用包含了用户一次探索所需要的全部数据、图表以及关系模型,非常适合作为日常工作的一个封装概念。

1.1.1. 应用的定义

应用结构说明

字段 类型 描述
id LONG 应用的 id
title STRING 应用的标题
options OBJECT 应用的配置信息
options.dashboards 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.publishType INTEGER 应用的发布类型,可选值为:0为 PUBLIC, 1为 PRIVATE
options.publishConfig.dataPolicy STRING 应用的数据策略,可选值为:WITH_PUBLISHER_DATA,WITH_VIEWER_DATA
options.publishConfig.duplicatedPermitted BOOL 发布的应用是否允许复制数据集
options.publishConfig.showDetailPermitted BOOL 只读模式下访问应用是否允许显示详情
options.publishConfig.downloadPermitted BOOL 只读模式下访问应用是否允许下载数据
options.publishConfig.zoomInPermitted BOOL 只读模式下访问应用是否下钻
options.appTemplateUUID STRING 应用模版的 uuid,只在导入、导出模版用到,不存库
isPublish BOOL 应用是不是发布区的应用
publishHash STRING 应用发布的哈希值
publishedBy NUMBER 发布区应用的源应用 id
folderId LONG 应用所在的文件夹 id
area STRING 应用所在的区域,可选值参照area值说明
shareHash STRING 分享应用的哈希值
dataMode STRING 应用的数据权限,可选值参照dataMode 值说明
emailOptions OBJECT 邮件自动推送的设置
emailOptions.receiverList OBJECT 数组 邮件自动推送的系统内收件人列表
emailOptions.receiverList[].id INTEGER 用户或者用户组或者组织机构id
emailOptions.receiverList[].name STRING 对应的名称
emailOptions.receiverList[].receiverType STRING 收件人类型,见收件人类型
emailOptions.emailAddressList STRING 数组 邮件自动推送的系统外收件人的邮件地址列表
emailOptions.dashboardList OBJECT 数组 邮件自动推送的仪表盘列表
emailOptions.dashboardList[].id INTEGER 仪表盘id
emailOptions.dashboardList[].appId INTEGER 仪表盘所属的应用Id
emailOptions.dashboardList[].title STRING 仪表盘的标题
emailOptions.bodyWithImage BOOLEAN 邮件自动推送是否包含图片在邮件正文
emailOptions.attachmentType STRING 邮件自动推送附件类型,见邮件附件类型
emailOptions.compressAttachment BOOL 邮件自动推送附件是否打包压缩,默认是压缩,不压缩填false
entityGroup STRING 邮件自动推送的执行计划类别,用于管理执行计划,固定为APP_EMAIL
entityKey STRING 邮件自动推送的执行计划关键字,用于管理执行计划
execDetail OBJECT 创建邮件推送执行计划需要用到的任务描述信息,详见执行计划
refreshEntityGroup STRING 应用数据集刷新的执行计划类别,用于管理执行计划,固定为APP_REFRESH
refreshExecDetail OBJECT 创建数据集刷新执行计划需要用到的任务描述信息,详见执行计划
hsVersion INTEGER 可选,本次编辑的版本号,从0开始,修改前先GET待修改资源获取当前版本号,修改时带上刚刚获取的版本号,服务端会检查并发冲突。不带版本号不检查并发冲突。
tenantId LONG 可选, 租户id
type STRING 应用类型, 可选值参照appType值说明
收件人类型
字段值 描述
USER 用户
ORGANIZATION 用户组
DEPARTMENT 组织机构
邮件附件类型
字段值 描述
PNG png文件
PDF pdf文件
EXCEL excel文件
area 值说明
字段值 描述
PERSONAL_AREA 应用创作区的个人区
PUBLIC_AREA 应用创作区的共享区
DATA_MART 数据集市
APP_MART 应用集市
dataMode 值说明
字段值 描述
APP_MODE 应用作者
DATASET_MODE 数据集作者
VIEWER_MODE 使用者
appType 值说明
字段值 描述
ANALYTIC_APP 常用应用,用于分析场景
QUERY_APP 查询应用,用于自助查询场景
DATA_APP 数据包,用于数据集市区处理数据集

1.2. 接口说明

1.2.1. 创建应用

请求URL

POST /api/v1/apps

请求参数

request body 请求体

应用结构说明 | 字段 | 类型 | 描述 | |------------------------------------------|----------|-------------------------| | title | STRING | 应用的标题 | | folderId | LONG | 应用所在的文件夹 id, 应用创作共享空间的根目录 id 为 1, 数据集市的根目录 id 为 2 |

返回对象的格式说明

应用结构说明

接口示例1 在应用创作区新建应用

  1. 请求 POST /api/v1/apps

    {"title":"应用名称","options":{"dashboardsOrder":[],"themes":{}}}
    
  2. 响应结果

    {
     "version": "3.2-SNAPSHOT@6929f52#8f8108f",
     "code": 0,
     "msg": "success",
     "data": {
         "id": 46176,
         "title": "应用名称",
         "options": {
             "dashboardsOrder": []
         },
         "createdBy": 6,
         "createdAt": "2020-06-03 17:30:27",
         "updatedBy": 6,
         "updatedAt": "2020-06-03 17:30:27",
         "area": "PERSONAL_AREA",
         "dataMode": "APP_MODE",
         "publish": false,
         "type": "ANALYTIC_APP"
     }
    }
    

    接口示例2 在应用创作共享空间根目录下创建应用

  3. 请求 POST /api/v1/apps

    {"folderId":1,"title":"应用名称","options":{"dashboardsOrder":[],"themes":{}}}
    

    接口示例3 在应用集市根目录下创建应用

  4. 请求 POST /api/v1/apps

    {"folderId":2,"title":"应用名称","options":{"dashboardsOrder":[],"themes":{}}}
    

    接口示例4 在应用创作下创建自助查询应用

  5. 请求 POST /api/v1/apps

    {"title":"应用名称","options":{"dashboardsOrder":[],"themes":{}},"type":"QUERY_APP"}
    

1.2.2. 查询应用

查询用户能看到的应用列表,在应用集市和应用创作区使用。

请求URL

GET /api/v1/apps

请求参数

URL 参数
字段 类型 是否必须 说明
publish BOOLEAN 获取应用集市区应用时设置为 true,获取应用协作区应用时设置为 false
orderBy String 排序字段
pOrCByCurrent BOOLEAN 应用集市区,查询 "我发布的" 应用时设置为 true, "发布给我的" 应用时设置为 false;应用协作区,查询"我协作的" 应用时设置为 true, "协作给我的" 应用时设置为 false
createdByCurrent BOOLEAN 查询 "我创建的" 应用时设置为 true,"协作给我的" 应用时设置为false,用于应用创作区
showHide BOOLEAN 是否显示隐藏的应用,用于应用集市区
queryAll BOOLEAN 是否显示全部应用

返回对象的格式说明

应用结构说明

接口示例1

  1. 请求 GET /api/v1/apps?pOrCByCurrent=false&offset=0&limit=20&orderBy=updatedAt&orderType=desc

  2. 响应结果

    {
     "version": "3.2-SNAPSHOT@b7c5a93#f76c1b6",
     "code": 0,
     "msg": "success",
     "data": [
         {
             "id": 45806,
             "title": "口罩专题分析",
             "cover": "",
             "options": {
                 "dashboards": [
                     1,
                     2,
                     3,
                     5
                 ],
                 "datasets": [
                     1
                 ],
                 "dashboardsOrder": [
                     1,
                     2,
                     3,
                     5
                 ],
                 "appTemplateUUID": "c05b0590-4685-4d3e-ac32-6cace767360f"
             },
             "createdBy": 187,
             "createdAt": "2020-05-09 10:48:59",
             "updatedBy": 187,
             "updatedAt": "2020-05-09 10:48:59",
             "visible": true,
             "hsVersion": 0,
             "area": "PERSONAL_AREA",
             "dataMode": "APP_MODE",
             "accessCount": 6,
             "creator": {
                 "id": 187,
                 "name": "qq420188456",
                 "email": "zhaojunli@hengshi.com"
             },
             "updater": {
                 "id": 187,
                 "name": "qq420188456",
                 "email": "zhaojunli@hengshi.com"
             },
             "collaborated": false,
             "datasets": [
                 1
             ]
         },
         {
             "id": 45648,
             "title": "jlscreenshot",
             "cover": "",
             "options": {
                 "dashboards": [
                     1,
                     3,
                     2
                 ],
                 "datasets": [
                     3,
                     2,
                     1
                 ],
                 "dashboardsOrder": [
                     1,
                     2,
                     3
                 ],
                 "enableAppRule": false
             },
             "createdBy": 187,
             "createdAt": "2020-04-15 16:16:19",
             "updatedBy": 187,
             "updatedAt": "2020-04-24 14:15:44",
             "visible": true,
             "hsVersion": 4,
             "area": "PERSONAL_AREA",
             "dataMode": "APP_MODE",
             "accessCount": 33,
             "publishState": true,
             "type": "ANALYTIC_APP",
             "creator": {
                 "id": 187,
                 "name": "qq420188456",
                 "email": "zhaojunli@hengshi.com"
             },
             "updater": {
                 "id": 187,
                 "name": "qq420188456",
                 "email": "zhaojunli@hengshi.com"
             },
             "collaborated": false,
             "datasets": [
                 3,
                 2,
                 1
             ]
         }
     ],
     "totalHits": 9,
     "offset": 0
    }
    

1.2.3. 根据ID查询应用

请求URL

GET /api/v1/apps/{appId}

请求参数

URL 参数
字段 类型 是否必须 说明
appId INTEGER 指定应用的 id

返回对象的格式说明

应用结构说明

接口示例1 查询 id 为 1 的应用

  1. 请求 GET /api/v1/apps/1

  2. 响应结果

    {
     "version": "3.2-SNAPSHOT@6929f52#8f8108f",
     "code": 0,
     "msg": "success",
     "data": {
         "id": 46176,
         "title": "lala",
         "cover": "",
         "options": {
             "dashboards": [
                 1
             ],
             "datasets": [
                 1
             ],
             "dashboardsOrder": [
                 1
             ],
             "enableAppRule": false
         },
         "createdBy": 6,
         "createdAt": "2020-06-03 17:30:27",
         "updatedBy": 6,
         "updatedAt": "2020-06-03 17:36:38",
         "visible": true,
         "isDelete": false,
         "isPublish": false,
         "hsVersion": 1,
         "area": "PERSONAL_AREA",
         "dataMode": "APP_MODE",
         "publishState": false,
         "type": "ANALYTIC_APP",
         "creator": {
             "id": 6,
             "name": "***",
             "email": "***",
             "mobile": "***"
         },
         "action": "admin|read|write",
         "datasets": [
             1
         ],
         "publish": false
     }
    }
    

1.2.4. 更新应用

请求URL

PUT /api/v1/apps/{appId}

请求参数

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 值说明

返回对象的格式说明

应用结构说明

接口示例1 更新 id 为 1 的应用标题

  1. 请求 PUT /api/v1/apps/1

    {"title":"wewe", "hsVersion": 1}
    

    接口示例2 启用 id 为 1 的应用行权限规则

  2. 请求 PUT /api/v1/apps/1

    {
     "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
    }
    

1.2.5. 删除应用

请求URL

DELETE /api/v1/apps/{appId}

请求参数

URL 参数
字段 类型 是否必须 说明
appId INTEGER 指定应用的 id

返回对象的格式说明

字段 类型 说明
version STRING 当前系统版本哈希值
msg STRING 成功返回 success

1.2.6. 运行图表获取数据

根据图表配置信息获取图表数据。

请求URL

POST /api/v1/apps/{appId}/chart-related-data

请求参数

URL 参数
字段 类型 说明
appId NUMBER 必填
Request Body 参数

图表的配置信息,详见图表结构说明

返回对象的格式说明

数据集数据 datasetResultDto

接口示例1

  1. 请求 POST /api/v1/apps/1/chart-data
    {
     "options": {
         "axes": [
             {
                 "op": "group",
                 "uid": "u_edbee8adba68e26a_0",
                 "kind": "function",
                 "args": [
                     {
                         "kind": "field",
                         "op": "region_name",
                         "dataset": 3
                     }
                 ]
             },
             {
                 "op": "sum",
                 "uid": "u_9f886f9cb7bdf1d2_1",
                 "kind": "function",
                 "args": [
                     {
                         "kind": "field",
                         "op": "region_id",
                         "dataset": 3
                     }
                 ]
             }
         ]
     }
    }
    
  2. 响应结果
    {
     "data": {
         "data": [
             [
                 "Americas",
                 2
             ],
             [
                 "Middle East and Africa",
                 4
             ],
             [
                 "Asia",
                 3
             ],
             [
                 "Europe",
                 1
             ]
         ],
         "schema": [
             {
                 "fieldName": "u_edbee8adba68e26a_0"
             },
             {
                 "fieldName": "u_9f886f9cb7bdf1d2_1"
             }
         ]
     }
    }
    

1.2.7. 运行图表获取原始数据

根据图表配置信息获取图表用到的数据集的原始数据。

请求URL

POST /api/v1/apps/{appId}/chart-related-data

请求参数

URL 参数
字段 类型 说明
appId NUMBER 必填
Request Body 参数

图表的配置信息,详见图表结构说明

返回对象的格式说明

数据集数据 datasetResultDto

接口示例1

  1. 请求 POST /api/v1/apps/1/chart-related-data
    {
     "options": {
         "axes": [
             {
                 "op": "group",
                 "uid": "u_edbee8adba68e26a_0",
                 "kind": "function",
                 "args": [
                     {
                         "kind": "field",
                         "op": "region_name",
                         "dataset": 3
                     }
                 ]
             },
             {
                 "op": "sum",
                 "uid": "u_9f886f9cb7bdf1d2_1",
                 "kind": "function",
                 "args": [
                     {
                         "kind": "field",
                         "op": "region_id",
                         "dataset": 3
                     }
                 ]
             }
         ],
         "fieldsPolicy": "AXES_ALL"    
     }
    }
    
  2. 响应结果
    {
     "data": [
         {
             "data": [
                 [
                     1,
                     "Europe"
                 ],
                 [
                     2,
                     "Americas"
                 ],
                 [
                     3,
                     "Asia"
                 ],
                 [
                     4,
                     "Middle East and Africa"
                 ]
             ],
             "schema": [
                 {
                     "fieldName": "region_id",
                     "type": "number",
                     "label": "region_id"
                 },
                 {
                     "fieldName": "region_name",
                     "type": "string",
                     "label": "region_name"
                 }
             ],
             "layer": "a_ivt_regions"
         }
     ]
    }
    

    1.2.8. 下载运行图表数据

    根据图表配置信息下载图表数据。

请求URL

POST /api/v1/apps/{appId}/chart-download

请求参数

URL 参数
字段 类型 说明
appId NUMBER 必填
Request Body 参数

图表的配置信息,详见图表结构说明

返回对象的格式说明

xlsx 格式的 excel 文件。

接口示例1

  1. 请求 POST /api/v1/apps/1/chart-download
    {
     "options": {
         "axes": [
             {
                 "op": "group",
                 "uid": "u_edbee8adba68e26a_0",
                 "kind": "function",
                 "args": [
                     {
                         "kind": "field",
                         "op": "region_name",
                         "dataset": 3
                     }
                 ]
             },
             {
                 "op": "sum",
                 "uid": "u_9f886f9cb7bdf1d2_1",
                 "kind": "function",
                 "args": [
                     {
                         "kind": "field",
                         "op": "region_id",
                         "dataset": 3
                     }
                 ]
             }
         ]
     },
     "fieldsPolicy":"AXES_USED",
     "title": "新的图表"
    }
    
  2. 响应结果 xlsx 格式的excel文件,包含了维度用到的两列 region_name、 region_id。

1.2.9. 导出应用模版

把当前应用导出为 Json 模版文件。

请求URL

GET /api/v1/apps/{appId}/export-template

请求参数

URL 参数
字段 类型 说明
appId NUMBER 必填

返回对象的格式说明

返回的是JSON文件,包括应用、仪表盘、图表、数据集、关联模型的配置信息。

接口示例1

  1. 请求

    GET /api/v1/apps/{appId}/export-template
    
  2. 响应结果 参照文件 app_template.json

1.2.10. 导入应用模版

导入 Json 模版文件创建新的应用。

请求URL

POST /api/v1/apps/import-template

请求参数

URL 参数
字段 类型 说明
folderId NUMBER 可选, 文件夹id,如果为空,就导入个人区
file BINARY 必填, 模版文件流

返回对象的格式说明

返回新生成的应用信息,详情见####应用结构说明

接口示例1

  1. 请求
    POST /api/v1/apps/import-template
    
  2. 请求参数

    folderId: 1234
    file: (binary)
    
  3. 响应结果

    {
     "version": "2.6-SNAPSHOT@079a626#c39468b",
     "code": 0,
     "msg": "success",
     "data": {
         "id": 26554,
         "title": "访问统计 (1)",
         "cover": "",
         "options": {
             "dashboardsOrder": [
                 1
             ],
             "appTemplateUUID": "494e4576-03ae-4901-8ea5-5f7539a3763b"
         },
         "createdBy": 89,
         "createdAt": "2019-12-16 17:58:10",
         "updatedBy": 89,
         "updatedAt": "2019-12-16 17:58:10",
         "visible": true,
         "isDelete": false,
         "hsVersion": 0,
         "publish": false,
         "publicPublish": false
     }
    }
    

1.2.11. 获取app及其子目录信息

获取当前用户所创建以及被协作的应用,以及应用仪表盘数据集,只包含id和title,用于侧边栏显示

请求URL

GET /api/v1/apps/tree

请求参数

URL 参数
字段 类型 说明
orderBy STRING 可选,排序字段,默认是按照更新时间降序排序
orderType STRING 可选,排序类型,asc - 表示升序,desc - 表示降序
appOnly Boolean 可选,true 表示只返回app列表,不包含数据集、仪表盘和图表,默认为false

返回对象的格式说明

返回的 data 字段是数组,每个元素表示一个应用及其对应的仪表盘数据集,定义如下

字段 类型 说明
id INTEGER 应用的id
title STRING 应用的名称
dashboardList ARRAY 应用的仪表盘
datasetList ARRAY 应用的数据集

dashboardList 元素的定义如下

字段 类型 说明
id INTEGER 仪表盘的id
title STRING 仪表盘的名称
charts ARRAY 仪表盘的所有图表

charts 元素的定义

字段 类型 说明
id INTEGER 图表的id
title STRING 图表的名称

datasetList 元素的定义

字段 类型 说明
id INTEGER 数据集的id
title STRING 数据集的名称

接口示例1

  1. 请求

    GET /api/v1/apps/tree?orderBy=createdAt
    
  2. 响应结果

    {
     "version": "2.6",
     "code": 0,
     "msg": "success",
     "data": [
         {
             "id": 1,
             "title": "app1",
             "dashboardList": [
                 {
                     "id": 1,
                     "title": "dashboard1",
                     "charts": [
                         {
                             "id": 1,
                             "title": "chart1"
                         }
                     ]
                 }
             ],
             "datasetList": [
                 {
                     "id": 1,
                     "title": "ds1"
                 }
             ]
         }
     ]
    }
    

接口示例2

  1. 请求

    GET /api/v1/apps/tree?appOnly=true
    
  2. 响应结果

    {
     "version": "2.6",
     "code": 0,
     "msg": "success",
     "data": [
         {
             "id": 1,
             "title": "app1",
         }
     ]
    }
    

1.2.12. 分页查询回收站中的应用

查询不同区域下回收站中的应用

请求URL

GET /api/v1/list-trash

请求参数

URL 参数
字段 类型 说明
area 枚举 可选,有效值参照area值说明,默认是 PERSONAL_AREA
orderBy STRING 可选,排序字段,默认是按照更新时间降序排序
orderType STRING 可选,排序类型,asc - 表示升序,desc - 表示降序
limit NUMBER 可选,单页限制条数,默认是10
offset NUMBER 可选,页数偏移量,默认是0

返回对象的格式说明

app对象的数组。

接口示例1

  1. 请求

    GET /api/v1/list-trash?area=PERSONAL_AREA
    
  2. 响应结果

    {
     "version": "2.7-SNAPSHOT@@git.commit.id.abbrev@#null",
     "code": 0,
     "msg": "success",
     "data": {
         "offset": 0,
         "totalHits": 127,
         "data": [
             {
                 "id": 327,
                 "title": "新建应用2 (9)",
                 "cover": "",
                 "options": {
                     "dashboardsOrder": [
                         1,
                         2
                     ]
                 },
                 "createdBy": 1,
                 "createdAt": "2019-08-20 16:20:56",
                 "updatedBy": 1,
                 "updatedAt": "2019-12-17 17:47:30",
                 "visible": true,
                 "isDelete": true,
                 "hsVersion": 4,
                 "area": "PERSONAL_AREA",
                 "publish": false,
                 "publicPublish": false
             }
         ]
     }
    }
    

    1.2.13. 恢复回收站中的应用

    恢复回收站中的应用

请求URL

POST /api/v1/apps/{appId}/restore

请求参数

URL 参数
字段 类型 说明
appId INTEGER 指定要恢复的应用 id

接口示例1

  1. 请求

    POST /api/v1/apps/1664/restore
    
  2. 响应结果

    {
     "version": "2.7-SNAPSHOT@@git.commit.id.abbrev@#null",
     "code": 0,
     "msg": "success",
     "data": 1
    }
    

    1.2.14. 彻底删除回收站中的应用

    彻底删除回收站中的应用

请求URL

POST /api/v1/apps/{appId}/prune

请求参数

URL 参数
字段 类型 说明
appId INTEGER 指定要恢复的应用 id

接口示例1

  1. 请求

    POST /api/v1/apps/1664/prune
    
  2. 响应结果

    {
     "version": "2.7-SNAPSHOT@@git.commit.id.abbrev@#null",
     "code": 0,
     "msg": "success",
     "data": 1
    }
    

    1.2.15. 在当前app下用HE 查询数据

    在当前app下用 HE 语句查询数据

    请求URL

    POST /api/v1/apps/{appId}/query
    
    URL 请求参数

    | appId | NUMBER | 必填,应用的 id | | limit | NUMBER | 可选,返回记录的最大条数,默认是1000 | | offset | NUMBER | 可选,返回第几页数据,默认是0 |

Request Body 参数

HE 表达式,详情参照HE 的数据集函数

返回对象的格式说明

数据集数据 datasetResultDto

参考示例

  1. 请求
    POST /api/v1/apps/1/query
    
  2. Request Body 参数
    {
     "kind":"formula",
     "op":"summarize(dataset(1), {type}, sum({votes}) as 'sum1')"
    }
    
  3. 响应结果
    {
     "version": "2.7-SNAPSHOT@@git.commit.id.abbrev@#null",
     "code": 0,
     "msg": "success",
     "data": {
         "data": [
             [
                 "喜剧",
                 16.5
             ],
             [
                 "动画",
                 16.6
             ]
         ],
         "schema": [
             {
                 "fieldName": "type",
                 "visible": true,
                 "nativeType": "text"
             },
             {
                 "fieldName": "sum1",
                 "visible": true,
                 "nativeType": "numeric"
             }
         ]
     }
    }
    

1.2.16. 批量隐藏 & 排序仪表盘

批量隐藏 & 排序仪表盘

请求URL

PUT /api/v1/apps/{appId}/update-dashbords-order-hide

请求参数

Request Body 参数
{
  "options": {
    "dashboardsOrder": [
      1,
      2,
      3
    ]
  },
  "resourceBatchUpdateDtos": [
    {
      "ids": [
        1
      ],
      "pathAndValues": [
        {
          "path": [
            "hide"
          ],
          "value": false
        }
      ]
    },
    {
      "ids": [
        2,
        3
      ],
      "pathAndValues": [
        {
          "path": [
            "hide"
          ],
          "value": true
        }
      ]
    }
  ]
}

接口示例1

  1. 请求
    PUT /api/v1/apps/{appId}/update-dashbords-order-hide
    
  2. 请求体
    {
    "options": {
     "dashboardsOrder": [
       1,
       2,
       3
     ]
    },
    "resourceBatchUpdateDtos": [
     {
       "ids": [
         1
       ],
       "pathAndValues": [
         {
           "path": [
             "hide"
           ],
           "value": false
         }
       ]
     },
     {
       "ids": [
         2,
         3
       ],
       "pathAndValues": [
         {
           "path": [
             "hide"
           ],
           "value": true
         }
       ]
     }
    ],
    "hsVersion": 5,
    }
    
  3. 响应结果
    {
    "version": "3.2-SNAPSHOT@f8dc947#95a976a",
    "code": 0,
    "msg": "success",
    "data": {
     "id": 45821,
     "title": "hideDashbaord",
     "cover": "",
     "options": {
       "dashboardsOrder": [
         1,
         2,
         3
       ],
       "enableAppRule": false
     },
     "createdBy": 8,
     "createdAt": "2020-05-13 14:16:58",
     "updatedBy": 8,
     "updatedAt": "2020-05-13 14:39:14",
     "visible": true,
     "isDelete": false,
     "hsVersion": 6,
     "area": "PERSONAL_AREA",
     "dataMode": "APP_MODE",
     "publish": false
    }
    }
    

1.2.17. 上传封面

请求URL

PUT /api/v1/apps/{appId}/cover

请求参数

Request Body 参数

表单数据

后端API请求代码样例
@Test
public void uploadTest() throws Exception {
    SimpleClientHttpRequestFactory simpleClientHttpRequestFactory = new SimpleClientHttpRequestFactory();
    simpleClientHttpRequestFactory.setConnectTimeout(15000);
    simpleClientHttpRequestFactory.setReadTimeout(5000);
    RestTemplate restTemplate = new RestTemplate(simpleClientHttpRequestFactory);
    HttpHeaders headers = new HttpHeaders();
    headers.setContentType(MediaType.MULTIPART_FORM_DATA);
    headers.set("Cookie", "csrf=142b7fd3-2cbf-4caa-ace5-480ad9871623; sid=3aadc6f7-67ea-49d7-8ec1-de4bb7ef673b");
    headers.set("X-CSRF-Token", "142b7fd3-2cbf-4caa-ace5-480ad9871623");
    String url = "http://localhost:9981/api/apps/47/cover";
    FileSystemResource fileSystemResource = new FileSystemResource("/Users/hengshi/Documents/a.jpg");
    MultiValueMap<String, Object> form = new LinkedMultiValueMap<>();
    form.add("file", fileSystemResource);
    form.add("filename", "a.jpg");
    HttpEntity<MultiValueMap<String, Object>> files = new HttpEntity<>(form, headers);
    String s = restTemplate.postForObject(url, files, String.class);
}

返回对象的格式说明

字段 类型 说明
version STRING 当前系统版本哈希值
data INTEGER 图片的 id

1.2.18. 上传水印

请求URL

PUT /api/v1/apps/{appId}/watermark

请求参数

Request Body 参数

表单数据

后端API请求代码样例

后端API请求代码样例

返回对象的格式说明

字段 类型 说明
version STRING 当前系统版本哈希值
data INTEGER 图片的 id

1.2.19. 发布应用

请求URL

POST /api/v1/apps/{appId}/publish

请求参数

url 参数
字段 类型 描述
appId INTEGER 应用的 id
request body 请求体

应用结构说明,只涉及到 options.publishConfig 实体

返回对象的格式说明

应用结构说明

接口示例1 在应用创作区新建应用

  1. 请求 POST /api/v1/apps/1/publish

    {
     "options": {
         "publishConfig": {
             "publishTitle": "0529-3.1-app",
             "publisher": "trial",
             "coverImageId": 102,
             "watermarkImageId": 103,
             "zoomInPermitted": true,
             "showDetailPermitted": true,
             "downloadPermitted": true,
             "duplicatedPermitted": true,
             "publishType": 1,
             "dataPolicy": 0
         }
     }
    }
    
  2. 响应结果

    {
     "version": "3.2-SNAPSHOT@@git.commit.id.abbrev@#null",
     "code": 0,
     "msg": "success",
     "data": {
         "id": 3207,
         "title": "0529-3.1-app",
         "options": {
             "dashboards": [
                 1
             ],
             "datasets": [
                 3,
                 2,
                 1
             ],
             "dashboardsOrder": [
                 1
             ],
             "publishConfig": {
                 "zoomInPermitted": true,
                 "showDetailPermitted": true,
                 "downloadPermitted": true,
                 "publishTitle": "0529-3.1-app",
                 "publisher": "trial",
                 "totalPages": {},
                 "duplicatedPermitted": true
             },
             "enableAppRule": false
         },
         "createdBy": 1,
         "createdAt": "2020-06-04 10:34:35",
         "updatedBy": 1,
         "updatedAt": "2020-06-04 10:34:36",
         "isDelete": false,
         "isPublish": true,
         "publishHash": "EFBD486D77DEA6973AC2821E8EE4528F",
         "publishedBy": 3153,
         "hsVersion": 0,
         "datasets": [
             3,
             2,
             1
         ],
         "publish": true
     }
    }
    

1.2.20. 取消发布

取消发布

请求URL

DELETE /api/v1/apps/{appId}/publish/cancel

请求参数

request body 参数

返回对象的格式说明

字段 类型 说明
version STRING 当前系统版本哈希值

说明

该操作只能由应用的创建者执行

接口示例1: 取消发布

DELETE /api/v1/apps/{appId}/publish/cancel

返回

{
  "version": "3.2-SNAPSHOT@@git.commit.id.abbrev@#null",
  "code": 0,
  "msg": "success"
}

1.2.21. 查看应用中使用的数据连接

请求URL

GET /api/v1/apps/{appId}/connection-replace

请求参数

url 参数
字段 类型 描述
appId INTEGER 应用的 id

返回对象的格式说明

返回对象是dataset list,每个dataset里带有connection的信息。

字段 类型 描述
id NUMBER 数据集的 id
options.connectionId NUMBER 数据连接的 id
options.connectionTitle NUMBER 数据连接的标题
options.origin STRING 数据连接的类型

接口示例1 列出应用 1 中图表所用到的所有数据连接

  1. 请求 GET /api/v1/apps/1/connection-replace

  2. 响应结果

    {
     "version": "3.3-SNAPSHOT@@git.commit.id.abbrev@#8500a3e",
     "code": 0,
     "msg": "success",
     "data": [
         {
             "id": 1,
             "options": {
                 "connectionTitle": "testuserattr",
                 "connectionId": 4197,
                 "origin": "postgresql"
             }
         }
     ]
    }
    

1.2.22. 替换应用中使用的数据连接

请求URL

POST /api/v1/apps/{appId}/connection-replace

请求参数

url 参数
字段 类型 描述
appId INTEGER 应用的 id
request body 请求体

现在使用的数据连接 id 和要替换的数据连接 id 对应关系的列表。例如:[{"current":4197,"replace":4122}]

返回对象的格式说明

字段 类型 描述
msg STRING 执行成功返回 success

接口示例1 替换应用 1 中图表所用到的一个数据连接

  1. 请求 POST /api/v1/apps/1/connection-replace
    [{"current":4197,"replace":4122}]
    
  2. 响应结果
    {"version":"3.2-SNAPSHOT@@git.commit.id.abbrev@#null","code":0,"msg":"success"}
    

1.2.23. 查看应用中使用的数据包

请求URL

GET /api/v1/apps/{appId}/dataapp-replace

请求参数

url 参数
字段 类型 描述
appId INTEGER 应用的 id

返回对象的格式说明

字段 类型 描述
id NUMBER 应用的 id
title STRING 应用的标题
area STRING 应用所在的区域,可选值参照area值说明
parents OBJECT 数组 应用所在的文件夹列表,顺序是从外层目录到里层目录
parents.[].id NUMBER 文件夹的id
parents.[].title STRING 文件夹的标题
parents.[].area STRING 文件夹所在的区域

接口示例1 列出应用 1 中图表所用到的所有数据包

  1. 请求 GET /api/v1/apps/1/dataapp-replace

  2. 响应结果

    {
     "version": "3.2-SNAPSHOT@@git.commit.id.abbrev@#null",
     "code": 0,
     "msg": "success",
     "data": [
         {
             "id": 3376,
             "title": "新建数据包 (2)",
             "area": "DATA_MART",
             "parents": [
                 {
                     "id": 2,
                     "title": "data_mart_root_folder",
                     "options": {
                         "rootType": "PUBLIC_ROOT_FOLDER"
                     },
                     "isDelete": false,
                     "area": "DATA_MART"
                 }
             ]
         },
         {
             "id": 3378,
             "title": "数据包过滤 (2)",
             "area": "PERSONAL_AREA"
         }
     ]
    }
    

1.2.24. 替换应用中使用的数据包

请求URL

POST /api/v1/apps/{appId}/dataapp-replace

请求参数

url 参数
字段 类型 描述
appId INTEGER 应用的 id
request body 请求体

现在使用的数据包 id 和要替换的数据包 id 对应关系的列表。例如:[{"current":3376,"replace":154}]

返回对象的格式说明

字段 类型 描述
msg STRING 执行成功返回 success

接口示例1 替换应用 1 中图表所用到的一个数据包

  1. 请求 POST /api/v1/apps/1/dataapp-replace
    [{"current":3376,"replace":154}]
    
  2. 响应结果
    {"version":"3.2-SNAPSHOT@@git.commit.id.abbrev@#null","code":0,"msg":"success"}
    

1.2.25. 全部禁用应用中的单个数据集更新计划

请求URL

POST /api/apps/{appId}/disable-all-dataset-schedule

请求参数

url 参数
字段 类型 描述
appId INTEGER 应用的 id
request body 请求体
字段 类型 描述

返回对象的格式说明

字段 类型 描述
msg STRING 执行成功返回 success

接口示例1 禁用app id为1的所有单个数据集更新计划

  1. 请求 POST /api/apps/1/disable-all-dataset-schedule
    {}
    
  2. 响应结果
    {
    "version":"3.5-SNAPSHOT@@git.commit.id.abbrev@#null",
    "code":0,
    "msg":"success"
    }
    

1.2.26. 应用刷新时排除这个数据集

请求URL

POST /api/apps/{appId}/exclude-in-app-refresh

请求参数

url 参数
字段 类型 描述
appId INTEGER 应用的 id
request body 请求体
字段 类型 描述
entityKey STRING 被排除的数据集的执行计划的entityKey,不包含这个字段,表示全部

返回对象的格式说明

字段 类型 描述
msg STRING 执行成功返回 success

接口示例1 禁用app id为1的所有单个数据集更新计划

  1. 请求 POST /api/apps/1/exclude-in-app-refresh
    {
    "entityKey": "1-1"
    }
    
  2. 响应结果
    {
    "version":"3.5-SNAPSHOT@@git.commit.id.abbrev@#null",
    "code":0,
    "msg":"success"
    }
    

1.2.27. 应用刷新时包含这个数据集

请求URL

POST /api/apps/{appId}/include-in-app-refresh

请求参数

url 参数
字段 类型 描述
appId INTEGER 应用的 id
request body 请求体
字段 类型 描述
entityKey STRING 被包含的数据集的执行计划的entityKey,不包含这个字段,表示全部

返回对象的格式说明

字段 类型 描述
msg STRING 执行成功返回 success

接口示例1 禁用app id为1的所有单个数据集更新计划

  1. 请求 POST /api/apps/1/include-in-app-refresh
    {
    "entityKey": "1-1"
    }
    
  2. 响应结果
    {
    "version":"3.5-SNAPSHOT@@git.commit.id.abbrev@#null",
    "code":0,
    "msg":"success"
    }
    

1.2.28. 查询应用中单个数据的执行计划列表

请求URL

GET /api/apps/{appId}/dataset-schedules

请求参数

URL 参数
字段 类型 是否必须 说明
appId INTEGER 应用的 id
includeInAppScope BOOL 可选 本dataset是否包括在app scope刷新中
q STRING 可选 搜索关键字

返回对象的格式说明

查询执行计划列表 返回数据一致,多一个字段:

字段 类型 是否必须 说明
includeInAppScope BOOL 可选 本dataset是否包括在app scope刷新中

接口示例1

  1. 请求 GET /api/apps/1/dataset-schedules

  2. 响应结果

    {
     "code": 0,
     "data": [
         {
             "id": 1,
             "entityGroup": "DATASET",
             "entityKey": "1-1",
             "enabled": false,
             "planItems": [
                 {
                     "id": 1,
                     "triggerType": "CRON_JOB",
                     "cronDesc": "0 15 0 ? * 1",
                     "cronType": "WEEKLY",
                     "timeZone": "GMT+08:00"
                 },
                 {
                     "id": 2,
                     "triggerType": "CRON_JOB",
                     "cronDesc": "*/30 * * * * ?",
                     "cronType": "CRON",
                     "timeZone": "GMT+08:00"
                 }
             ],
             "execDetail": {
                 "jobClass": "com.hengshi.nangaparbat.schedulejob.DatasetJob",
                 "jobParams": {"app": 1,"dataset": 1},
                 "retryTimes": 1
             },
             "title": "dataset1",
             "createdAt": "2020-03-05 15:01:02",
             "createdBy": 1,
             "updatedAt": "2020-03-05 15:01:02",
             "updatedBy": 1
         }
     ],
     "msg": "success",
     "version": "3.5-SNAPSHOT@@git.commit.id.abbrev@#1234567",
     "totalHits": 1,
     "offset": 0
    }
    

1.2.29. 查询应用刷新的执行计划

请求URL

GET /api/apps/{appId}/refresh-schedule

请求参数

URL 参数
字段 类型 是否必须 说明
appId INTEGER 应用的 id

返回对象的格式说明

查询执行计划列表 返回数据一致,只有一个执行计划object

接口示例1

  1. 请求 GET /api/apps/1/refresh-schedule

  2. 响应结果

    {
     "code": 0,
     "data": {
           "id": 1,
           "entityGroup": "APP_REFRESH",
           "entityKey": "1",
           "enabled": false,
           "planItems": [
               {
                   "id": 1,
                   "triggerType": "CRON_JOB",
                   "cronDesc": "0 15 0 ? * 1",
                   "cronType": "WEEKLY",
                   "timeZone": "GMT+08:00"
               },
               {
                   "id": 2,
                   "triggerType": "CRON_JOB",
                   "cronDesc": "*/30 * * * * ?",
                   "cronType": "CRON",
                   "timeZone": "GMT+08:00"
               }
           ],
           "execDetail": {
               "jobClass": "com.hengshi.nangaparbat.schedulejob.AppDatasetRefreshJob",
               "jobParams": {"app": 1},
               "retryTimes": 1
           },
           "title": "app1",
           "createdAt": "2020-03-05 15:01:02",
           "createdBy": 1,
           "updatedAt": "2020-03-05 15:01:02",
           "updatedBy": 1
       },
     "msg": "success",
     "version": "3.5-SNAPSHOT@@git.commit.id.abbrev@#1234567",
     "totalHits": 1,
     "offset": 0
    }
    

    1.2.30. 创建自助查询应用的用户设置

请求URL

GET /api/apps/{appId}/profiles

请求参数

URL 参数
字段 类型 是否必须 说明
appId INTEGER 应用的 id

返回对象的格式说明

查询执行计划列表 返回数据一致,只有一个执行计划object

接口示例1

  1. 请求 GET /api/apps/1/refresh-schedule

  2. 响应结果

    {
     "code": 0,
     "data": {
           "id": 1,
           "entityGroup": "APP_REFRESH",
           "entityKey": "1",
           "enabled": false,
           "planItems": [
               {
                   "id": 1,
                   "triggerType": "CRON_JOB",
                   "cronDesc": "0 15 0 ? * 1",
                   "cronType": "WEEKLY",
                   "timeZone": "GMT+08:00"
               },
               {
                   "id": 2,
                   "triggerType": "CRON_JOB",
                   "cronDesc": "*/30 * * * * ?",
                   "cronType": "CRON",
                   "timeZone": "GMT+08:00"
               }
           ],
           "execDetail": {
               "jobClass": "com.hengshi.nangaparbat.schedulejob.AppDatasetRefreshJob",
               "jobParams": {"app": 1},
               "retryTimes": 1
           },
           "title": "app1",
           "createdAt": "2020-03-05 15:01:02",
           "createdBy": 1,
           "updatedAt": "2020-03-05 15:01:02",
           "updatedBy": 1
       },
     "msg": "success",
     "version": "3.5-SNAPSHOT@@git.commit.id.abbrev@#1234567",
     "totalHits": 1,
     "offset": 0
    }
    

results matching ""

    No results matching ""

    Introduction 应用参数