衡石科技BI的产品HENGSHI SENSE API 使用手册 第一篇应用

应用说明

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

应用的定义

应用结构说明
字段 类型 描述
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 参数

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

返回对象的格式说明

数据集数据 datasetResultDto

接口示例1

以下是一个按{region_name}做分组,用sum({region_id})做度量的一个数据请求。[Request]中的GROUP函数可以省略,如果是同一个数据集那么dataset: 3这个描述可以省略。纯数据查询这样的请求可以发送为[Request1][Request2]这样的简化形式:

RequestRequest2Request3Response

http

POST /api/apps/1/chart-data HTTP/1.1
Content-Type: application/json
Cookie: csrf=183f1c4...; sid=26ee552d...; _USER_SESSION_ID=f2a01083...

// Request Body:
{
   "datasetId": 3,
    "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
                }
            ]
        }
      ]
    }
}

运行图表获取原始数据

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

请求URL

http

POST /api/apps/{appId}/chart-related-data HTTP/1.1
Content-Type: application/json
Cookie: csrf=183f1c4...; sid=26ee552d...; _USER_SESSION_ID=f2a01083...
请求参数
URL 参数
字段 类型 说明
appId NUMBER 必填
Request Body 参数

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

返回对象的格式说明

数据集数据 datasetResultDto

接口示例1

RequestResponse

http

POST /api/apps/1/chart-related-data HTTP/1.1
Content-Type: application/json
Cookie: csrf=183f1c4...; sid=26ee552d...; _USER_SESSION_ID=f2a01083...

// Request Body:
{
   "datasetId": 3,
   "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"
  }
}

分页查询回收站中的应用

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

请求URL

http

GET /api/list-trash HTTP/1.1
Accept: application/json
Cookie: csrf=183f1c4...; sid=26ee552d...; _USER_SESSION_ID=f2a01083...
请求参数
URL 参数
字段 类型 说明
area 枚举 可选,有效值参照area值说明,默认是 PERSONAL_AREA
orderBy STRING 可选,排序字段,默认是按照更新时间降序排序
orderType STRING 可选,排序类型,asc - 表示升序,desc - 表示降序
limit NUMBER 可选,单页限制条数,默认是10
offset NUMBER 可选,页数偏移量,默认是0
返回对象的格式说明

app对象的数组。

接口示例1

RequestResponse

http

GET /api/list-trash?area=PERSONAL_AREA HTTP/1.1
Accept: application/json
Cookie: csrf=183f1c4...; sid=26ee552d...; _USER_SESSION_ID=f2a01083...

恢复回收站中的应用

恢复回收站中的应用

请求URL

http

POST /api/apps/{appId}/restore HTTP/1.1
Content-Type: application/json
Cookie: csrf=183f1c4...; sid=26ee552d...; _USER_SESSION_ID=f2a01083...
请求参数
URL 参数
字段 类型 说明
appId INTEGER 指定要恢复的应用 id
接口示例1

RequestResponse

http

POST /api/apps/1664/restore HTTP/1.1
Content-Type: application/json
Cookie: csrf=183f1c4...; sid=26ee552d...; _USER_SESSION_ID=f2a01083...

彻底删除回收站中的应用

彻底删除回收站中的应用

请求URL

http

POST /api/apps/{appId}/prune HTTP/1.1
Content-Type: application/json
Cookie: csrf=183f1c4...; sid=26ee552d...; _USER_SESSION_ID=f2a01083...
请求参数
URL 参数
字段 类型 说明
appId INTEGER 指定要恢复的应用 id
接口示例1

RequestResponse

http

POST /api/apps/1664/prune HTTP/1.1
Content-Type: application/json
Cookie: csrf=183f1c4...; sid=26ee552d...; _USER_SESSION_ID=f2a01083...

在当前app下用HE 查询数据

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

请求URL

http

POST /api/apps/{appId}/query HTTP/1.1
Content-Type: application/json
Cookie: csrf=183f1c4...; sid=26ee552d...; _USER_SESSION_ID=f2a01083...
URL 请求参数

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

Request Body 参数

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

返回对象的格式说明

数据集数据 datasetResultDto

参考示例

RequestResponse

http

POST /api/apps/1/query HTTP/1.1
Content-Type: application/json
Cookie: csrf=183f1c4...; sid=26ee552d...; _USER_SESSION_ID=f2a01083...

// Request Body:
{
  "kind": "formula",
  "op": "summarize(dataset(1), {type}, sum({votes}) as 'sum1')"
}

批量隐藏 & 排序仪表盘

批量隐藏 & 排序仪表盘

请求URL

http

PUT /api/apps/{appId}/update-dashbords-order-hide HTTP/1.1
Content-Type: application/json
Cookie: csrf=183f1c4...; sid=26ee552d...; _USER_SESSION_ID=f2a01083...
请求参数
Request Body 参数

json

{
  "options": {
    "dashboardsOrder": [
      1,
      2,
      3
    ]
  },
  "resourceBatchUpdateDtos": [
    {
      "ids": [
        1
      ],
      "pathAndValues": [
        {
          "path": [
            "hide"
          ],
          "value": false
        }
      ]
    },
    {
      "ids": [
        2,
        3
      ],
      "pathAndValues": [
        {
          "path": [
            "hide"
          ],
          "value": true
        }
      ]
    }
  ]
}
接口示例1

RequestResponse

http

PUT /api/apps/{appId}/update-dashbords-order-hide HTTP/1.1
Content-Type: application/json
Cookie: csrf=183f1c4...; sid=26ee552d...; _USER_SESSION_ID=f2a01083...

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

上传封面

请求URL

http

PUT /api/apps/{appId}/cover HTTP/1.1
Content-Type: application/json
Cookie: csrf=183f1c4...; sid=26ee552d...; _USER_SESSION_ID=f2a01083...
请求参数
Request Body 参数

表单数据

后端API请求代码样例

java

@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="/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

上传水印

请求URL

http

PUT /api/apps/{appId}/watermark HTTP/1.1
Content-Type: application/json
Cookie: csrf=183f1c4...; sid=26ee552d...; _USER_SESSION_ID=f2a01083...
请求参数
Request Body 参数

表单数据

后端API请求代码样例

后端API请求代码样例

返回对象的格式说明
字段 类型 说明
version STRING 当前系统版本哈希值
data INTEGER 图片的 id

发布应用

请求URL

http

POST /api/apps/{appId}/publish HTTP/1.1
Content-Type: application/json
Cookie: csrf=183f1c4...; sid=26ee552d...; _USER_SESSION_ID=f2a01083...
请求参数
url 参数
字段 类型 描述
appId INTEGER 应用的 id
request body 请求体

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

返回对象的格式说明

应用结构说明

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

RequestResponse

http

POST /api/apps/1/publish HTTP/1.1
Content-Type: application/json
Cookie: csrf=183f1c4...; sid=26ee552d...; _USER_SESSION_ID=f2a01083...

// Request Body:
{
  "targetFolderId": 2805,
  "targetArea": "SYSTEM_PORTAL",
  "options": {
    "publishConfig": {
      "publishTitle": "0529-3.1-app",
      "publisher": "trial",
      "coverImageId": 102,
      "watermarkImageId": 103,
      "zoomInPermitted": true,
      "showDetailPermitted": true,
      "downloadPermitted": true,
      "duplicatedPermitted": true,
      "targetFolderId": 1,
      "description": "app description",
      "foldersTitle": [
        "公共空间",
        "文件夹"
      ],
      "publisherDisplayConfig": {
        "id": 123,
        "type": "user",
        "name": "trial"
      }
    }
  }
}

取消发布

取消发布

请求URL

http

DELETE /api/apps/{appId}/publish/cancel HTTP/1.1

1

请求参数

request body 参数

返回对象的格式说明
字段 类型 说明
version STRING 当前系统版本哈希值
说明

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

接口示例1: 取消发布

RequestResponse

http

DELETE /api/apps/{appId}/publish/cancel HTTP/1.1
Accept: application/json
Cookie: csrf=183f1c4...; sid=26ee552d...; _USER_SESSION_ID=f2a01083...

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

请求URL

http

GET /api/apps/{appId}/connection-replace HTTP/1.1
Accept: application/json
Cookie: csrf=183f1c4...; sid=26ee552d...; _USER_SESSION_ID=f2a01083...
请求参数
url 参数
字段 类型 描述
appId INTEGER 应用的 id
返回对象的格式说明

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

字段 类型 描述
id NUMBER 数据集的 id
options.connectionId NUMBER 数据连接的 id
options.connectionTitle NUMBER 数据连接的标题
options.origin STRING 数据连接的类型
接口示例1 列出应用 1 中图表所用到的所有数据连接

RequestResponse

http

GET /api/apps/1/connection-replace HTTP/1.1
Accept: application/json
Cookie: csrf=183f1c4...; sid=26ee552d...; _USER_SESSION_ID=f2a01083...

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

请求URL

http

POST /api/apps/{appId}/connection-replace HTTP/1.1
Content-Type: application/json
Cookie: csrf=183f1c4...; sid=26ee552d...; _USER_SESSION_ID=f2a01083...
请求参数
url 参数
字段 类型 描述
appId INTEGER 应用的 id
request body 请求体

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

返回对象的格式说明
字段 类型 描述
msg STRING 执行成功返回 success
接口示例1 替换应用 1 中图表所用到的一个数据连接

RequestResponse

http

POST /api/apps/1/connection-replace HTTP/1.1
Content-Type: application/json
Cookie: csrf=183f1c4...; sid=26ee552d...; _USER_SESSION_ID=f2a01083...

// Request Body:
[
  {
    "current": 4197,
    "replace": 4122
  }
]

查看应用中使用的数据包

请求URL

http

GET /api/apps/{appId}/dataapp-replace HTTP/1.1
Accept: application/json
Cookie: csrf=183f1c4...; sid=26ee552d...; _USER_SESSION_ID=f2a01083...
请求参数
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 中图表所用到的所有数据包

RequestResponse

http

GET /api/apps/1/dataapp-replace HTTP/1.1
Accept: application/json
Cookie: csrf=183f1c4...; sid=26ee552d...; _USER_SESSION_ID=f2a01083...

替换应用中使用的数据包

请求URL

http

POST /api/apps/{appId}/dataapp-replace HTTP/1.1
Content-Type: application/json
Cookie: csrf=183f1c4...; sid=26ee552d...; _USER_SESSION_ID=f2a01083...
请求参数
url 参数
字段 类型 描述
appId INTEGER 应用的 id
request body 请求体

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

返回对象的格式说明
字段 类型 描述
msg STRING 执行成功返回 success
接口示例1 替换应用 1 中图表所用到的一个数据包

RequestResponse

http

POST /api/apps/1/dataapp-replace HTTP/1.1
Content-Type: application/json
Cookie: csrf=183f1c4...; sid=26ee552d...; _USER_SESSION_ID=f2a01083...

// Request Body:
[
  {
    "current": 3376,
    "replace": 154
  }
]

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

请求URL

http

POST /api/apps/{appId}/disable-all-dataset-schedule HTTP/1.1
Content-Type: application/json
Cookie: csrf=183f1c4...; sid=26ee552d...; _USER_SESSION_ID=f2a01083...
请求参数
url 参数
字段 类型 描述
appId INTEGER 应用的 id
request body 请求体
返回对象的格式说明
字段 类型 描述
msg STRING 执行成功返回 success
接口示例1 禁用app id为1的所有单个数据集更新计划

RequestResponse

http

POST /api/apps/1/disable-all-dataset-schedule HTTP/1.1
Content-Type: application/json
Cookie: csrf=183f1c4...; sid=26ee552d...; _USER_SESSION_ID=f2a01083...

// Request Body:
{}

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

请求URL

http

POST /api/apps/{appId}/exclude-in-app-refresh HTTP/1.1
Content-Type: application/json
Cookie: csrf=183f1c4...; sid=26ee552d...; _USER_SESSION_ID=f2a01083...
请求参数
url 参数
字段 类型 描述
appId INTEGER 应用的 id
request body 请求体
字段 类型 描述
entityKey STRING 被排除的数据集的执行计划的entityKey,不包含这个字段,表示全部
返回对象的格式说明
字段 类型 描述
msg STRING 执行成功返回 success
接口示例1 禁用app id为1的所有单个数据集更新计划

RequestResponse

http

POST /api/apps/1/exclude-in-app-refresh HTTP/1.1
Content-Type: application/json
Cookie: csrf=183f1c4...; sid=26ee552d...; _USER_SESSION_ID=f2a01083...

// Request Body:
{
  "entityKey": "1-1"
}

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

请求URL

http

POST /api/apps/{appId}/include-in-app-refresh HTTP/1.1
Content-Type: application/json
Cookie: csrf=183f1c4...; sid=26ee552d...; _USER_SESSION_ID=f2a01083...
请求参数
url 参数
字段 类型 描述
appId INTEGER 应用的 id
request body 请求体
字段 类型 描述
entityKey STRING 被包含的数据集的执行计划的entityKey,不包含这个字段,表示全部
返回对象的格式说明
字段 类型 描述
msg STRING 执行成功返回 success
接口示例1 禁用app id为1的所有单个数据集更新计划

RequestResponse

http

POST /api/apps/1/include-in-app-refresh HTTP/1.1
Content-Type: application/json
Cookie: csrf=183f1c4...; sid=26ee552d...; _USER_SESSION_ID=f2a01083...

// Request Body:
{
  "entityKey": "1-1"
}

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

请求URL

http

GET /api/apps/{appId}/dataset-schedules HTTP/1.1
Accept: application/json
Cookie: csrf=183f1c4...; sid=26ee552d...; _USER_SESSION_ID=f2a01083...
请求参数
URL 参数
字段 类型 是否必须 说明
appId INTEGER 应用的 id
includeInAppScope BOOL 可选 本dataset是否包括在app scope刷新中
q STRING 可选 搜索关键字
返回对象的格式说明

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

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

RequestResponse

http

GET /api/apps/1/dataset-schedules HTTP/1.1
Accept: application/json
Cookie: csrf=183f1c4...; sid=26ee552d...; _USER_SESSION_ID=f2a01083...

查询应用刷新的执行计划

请求URL

http

GET /api/apps/{appId}/refresh-schedule HTTP/1.1
Accept: application/json
Cookie: csrf=183f1c4...; sid=26ee552d...; _USER_SESSION_ID=f2a01083...
请求参数
URL 参数
字段 类型 是否必须 说明
appId INTEGER 应用的 id
返回对象的格式说明

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

接口示例1

RequestResponse

http

GET /api/apps/1/refresh-schedule HTTP/1.1
Accept: application/json
Cookie: csrf=183f1c4...; sid=26ee552d...; _USER_SESSION_ID=f2a01083...

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

请求URL

http

GET /api/apps/{appId}/profiles HTTP/1.1
Accept: application/json
Cookie: csrf=183f1c4...; sid=26ee552d...; _USER_SESSION_ID=f2a01083...
请求参数
URL 参数
字段 类型 是否必须 说明
appId INTEGER 应用的 id
返回对象的格式说明

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

接口示例1

RequestResponse

http

GET /api/apps/1/refresh-schedule HTTP/1.1
Accept: application/json
Cookie: csrf=183f1c4...; sid=26ee552d...; _USER_SESSION_ID=f2a01083...

复制应用

请求URL

http

POST /api/apps/{appId}/duplicate HTTP/1.1
Content-Type: application/json
Cookie: csrf=183f1c4...; sid=26ee552d...; _USER_SESSION_ID=f2a01083...
请求参数
url 参数
字段 类型 描述
appId INTEGER 应用的 id
request body 请求体
字段 类型 描述
targetFolderId LONG 复制到目录的id,不包含这个字段,表示和源应用同一目录
title String 新应用名称,可不传
返回对象的格式说明

应用结构说明

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

RequestResponse

http

POST /api/apps/1/duplicate HTTP/1.1
Content-Type: application/json
Cookie: csrf=183f1c4...; sid=26ee552d...; _USER_SESSION_ID=f2a01083...
接口示例2 在应用集市区使用模版新建应用

http

POST /api/apps/2/duplicate HTTP/1.1
Content-Type: application/json
Cookie: csrf=183f1c4...; sid=26ee552d...; _USER_SESSION_ID=f2a01083...
  1. 响应结果 和接口示例1返回数据一致
接口示例3 在应用创作区将应用复制到指定目录下

http

POST /api/apps/3/duplicate HTTP/1.1
Content-Type: application/json
Cookie: csrf=183f1c4...; sid=26ee552d...; _USER_SESSION_ID=f2a01083...

// Request Body:
{
  "targetFolderId": 0,
  "title": "duplicate app"
}
  1. 响应结果 和接口示例1返回数据一致

使用模板覆盖当前应用

请求URL

http

POST /api/apps/{appId}/overwrite HTTP/1.1
Content-Type: application/json
Cookie: csrf=183f1c4...; sid=26ee552d...; _USER_SESSION_ID=f2a01083...
请求参数
url 参数
字段 类型 描述
appId INTEGER 应用的 id
file BINARY 必填, 模版文件流
copy BOOLEAN 必填, 是否备份当前应用
overwriteAuth BOOLEAN 非 必填, 是否覆盖当前应用的权限配置
返回对象的格式说明

应用结构说明

接口示例1 使用模板覆盖当前应用

RequestResponse

http

POST /api/apps/1/overwrite?copy=false HTTP/1.1
Content-Type: application/json
Cookie: csrf=183f1c4...; sid=26ee552d...; _USER_SESSION_ID=f2a01083...

暂停/恢复APP

请求URL

http

POST /api/apps/{appId}/pending HTTP/1.1
Content-Type: application/json
Cookie: csrf=183f1c4...; sid=26ee552d...; _USER_SESSION_ID=f2a01083...
请求参数
url 参数
字段 类型 描述
appId INTEGER 应用的 id
status STRING 必填, 要修改的应用状态,可选值:PENDING
返回对象的格式说明

应用结构说明

接口示例1 使用模板覆盖当前应用

RequestResponse

http

POST /api/apps/1/pending?status=pending HTTP/1.1
Content-Type: application/json
Cookie: csrf=183f1c4...; sid=26ee552d...; _USER_SESSION_ID=f2a01083...

GET 获取指定用户创建的所有APP

获取指定用户创建的所有APP。针对SYSTEM_PORTAL、PUBLIC_AREA、DATA_MART的中的APP需要当前发起请求的用户拥有系统管理员以及数据管理员角色,当请求中显示指定了用户时则返回指定用户创建的所有应用,否则返回当前用户创建的所有应用。当指定非当前用户时, area取值只能是 SYSTEM_PORTAL | PUBLIC_AREA | DATA_MART之一。

请求参数
名称 位置 类型 必选 说明
createdBy query integer 指定用户ID
creatorEmail query integer 指定用户绑定电子邮箱
creatorMobile query integer 指定用户绑定手机号码
creatorLoginName query integer 指定用户登陆名
area query string 指定区域,可选项:SYSTEM_PORTAL、PUBLIC_AREA、DATA_MART、PERSONAL_AREA、APP_MART
orderBy query string 排序字段
orderType query string 排序方式
offset query string 分页偏移量
limit query string 分页大小

RequestResponse

http

GET /api/apps/created-list?area=SYSTEM_PORTAL&orderBy=createdAt&orderType=desc&offset=0&limit=10 HTTP/1.1
Accept: application/json
Cookie: csrf=183f1c4...; sid=26ee552d...; _USER_SESSION_ID=f2a01083...
返回结果
状态码 状态码含义 说明 数据模型
200 OK 成功 Inline
返回数据结构

状态码 200

名称 类型 必选 约束 中文名 说明
>> code integer true none none
>> msg string true none none
>> data [object] true none none
>>>> id integer true none none
>>>> title string true none none
>>>> cover string true none none
>>>> options object true none none
>>>>>> dashboardsOrder [string] true none none
>>>>>> enableRuleStrictValidate boolean true none none
>>>>>> devices object true none none
>>>>>>>> pc boolean true none none
>>>>>>>> mobile boolean true none none
>>>> createdBy integer true none none
>>>> createdAt string true none none
>>>> updatedBy integer true none none
>>>> updatedAt string true none none
>>>> latestAuthorizedBy integer true none none
>>>> latestAuthorizedAt string true none none
>>>> visible boolean true none none
>>>> isDelete boolean true none none
>>>> isPublish boolean true none none
>>>> isBackup boolean true none none
>>>> folderId integer true none none
>>>> area string true none none
>>>> dataMode string true none none
>>>> emailOptions object true none none
>>>> type string true none none
>>>> publishState boolean true none none
>>>> hideDatasets [integer] true none none
>>>> status string true none none
>>>> creator object true none none
>>>>>> id integer true none none
>>>>>> name string true none none
>>>>>> email string true none none
>>>>>> loginName string true none none
>>>> updater object true none none
>>>>>> id integer true none none
>>>>>> name string true none none
>>>>>> email string true none none
>>>>>> loginName string true none none
>>>> refreshExecDetail object true none none
>>>>>> jobClass string true none none
>>>>>> jobParams object true none none
>>>>>>>> app integer true none none
>>>>>> retryTimes integer true none none
>>>> refreshEntityGroup string true none none
>>>> entityKey string true none none
>>>> entityGroup string true none none
>>>> execDetail object true none none
>>>>>> jobClass string true none none
>>>>>> jobParams object true none none
>>>>>>>> app integer true none none
>>>>>> retryTimes integer true none none
>> totalHits integer true none none
>> offset integer true none none
>> chartDataStartTimeMillis integer true none none

应用/应用版本管理

GET 获取应用备份版本个数

查询当前app应用备份版本个数。

请求参数
名称 位置 类型 必选 说明
appId path string none

RequestResponse

http

GET /api/apps/{appId}/backups/count HTTP/1.1
Accept: application/json
Cookie: csrf=183f1c4...; sid=26ee552d...; _USER_SESSION_ID=f2a01083...
返回结果
状态码 状态码含义 说明 数据模型
200 OK 成功 Inline
返回数据结构

状态码 200

名称 类型 必选 约束 中文名 说明
>> version string true none none
>> code integer true none none
>> msg string true none none
>> data integer true none none
>> chartDataStartTimeMillis integer true none none

GET 获取应用备份列表

查询当前app备份信息。

请求参数
名称 位置 类型 必选 说明
appId path string none
orderBy query string none
limit query string none
orderType query string none
offset query string none

RequestResponse

http

GET /api/apps/{appId}/backups HTTP/1.1
Accept: application/json
Cookie: csrf=183f1c4...; sid=26ee552d...; _USER_SESSION_ID=f2a01083...
返回结果
状态码 状态码含义 说明 数据模型
200 OK 成功 Inline
返回数据结构

状态码 200

名称 类型 必选 约束 中文名 说明
>> version string true none none
>> code integer true none none
>> msg string true none none
>> data [object] true none none
>>>> id integer true none none
>>>> appId integer true none 当前应用id
>>>> backupAppId integer true none 备份应用id
>>>> title string true none 备份记录标题
>>>> createdBy integer true none 备份记录创建者
>>>> createdAt string true none 备份记录创建时间
>>>> updatedBy integer true none 备份记录最后一次修改者
>>>> updatedAt string true none 备份记录最后一次修改时间
>>>> isDeleted boolean true none none
>>>> creator object true none none
>>>>>> id integer true none none
>>>>>> name string true none none
>>>>>> loginName string true none none
>>>> updater object true none none
>>>>>> id integer true none none
>>>>>> name string true none none
>>>>>> loginName string true none none
>> chartDataStartTimeMillis integer true none none

DELETE 删除备份

删除指定的app的指定备份文件。

请求参数
名称 位置 类型 必选 说明
appId path string 应用id
backupId path string 应用备份记录id

RequestResponse

http

DELETE /api/apps/{appId}/backups/{backupId} HTTP/1.1
Accept: application/json
Cookie: csrf=183f1c4...; sid=26ee552d...; _USER_SESSION_ID=f2a01083...
返回结果
状态码 状态码含义 说明 数据模型
200 OK 成功 Inline
返回数据结构

PUT 更新备份记录信息

更新指定app的指定备份记录信息。更新的是备份记录信息,并不是副本本身。

请求参数
名称 位置 类型 必选 说明
appId path string 应用id
backupId path string 应用备份记录id
body body object none
>> title body string none

RequestResponse

http

PUT /api/apps/{appId}/backups/{backupId} HTTP/1.1
Content-Type: application/json
Cookie: csrf=183f1c4...; sid=26ee552d...; _USER_SESSION_ID=f2a01083...

// Request Body:
{
  "title": "1号备份"
}
返回结果
状态码 状态码含义 说明 数据模型
200 OK 成功 Inline
返回数据结构

GET 重置

http

GET /api/apps/{appId}/backups/{backupId}/restore HTTP/1.1
Accept: application/json
Cookie: csrf=183f1c4...; sid=26ee552d...; _USER_SESSION_ID=f2a01083...

1

2

3

将指定app重置到指定的备份版本。

说明

应用版本仅保留数据分析相关的所有内容:仪表盘、数据集、数据模型、参数、翻页器等,涉及到连接、权限相关的设置则无法保留。 应用发布时自动保留版本,仅保留最近的若干版本。更早的版本将被自动删除。

请求参数
名称 位置 类型 必选 说明
appId path string none
backupId path string none
返回结果
状态码 状态码含义 说明 数据模型
200 OK 成功 Inline
返回数据结构

应用/导入导出

GET 导出应用模板

http

GET /api/apps/{appId}/export-template HTTP/1.1
Accept: application/json
Cookie: csrf=183f1c4...; sid=26ee552d...; _USER_SESSION_ID=f2a01083...
请求参数
名称 位置 类型 必选 说明
appId path string none
exportAuth query string 要导出的模版版本,若要将模版导入3.6或3.6之前的系统,则需要传3.6
tplVersion query string 是否要导出应用的授权 & 权限模式 & 行权限信息,个人区需应用作者才能导出,公共区需应用管理员才能导出
返回结果
状态码 状态码含义 说明 数据模型
200 OK 成功 Inline
返回数据结构

POST 校验应用模板

在导入模板之前应先调用该API对要进行导入的模板文件进行校验。

请求参数
名称 位置 类型 必选 说明
area query string 目标区域

RequestResponse

http

POST /api/apps/import-template-validate HTTP/1.1
Accept: application/json
Cookie: csrf=183f1c4...; sid=26ee552d...; _USER_SESSION_ID=f2a01083...
返回结果
状态码 状态码含义 说明 数据模型
200 OK 成功 Inline
400 Bad Request 模板中存在错误 Inline
返回数据结构

POST 导入模板

根据导入的模板文件创建app。

http

POST /api/apps/import-template HTTP/1.1
Accept: application/json
Content-Type: multipart/form-data; boundary=----WebKitFormBoundarywj9aABghi7jHeyqX
Cookie: csrf=183f1c4...; sid=26ee552d...; _USER_SESSION_ID=f2a01083...

file:
------WebKitFormBoundarywj9aABghi7jHeyqX
Content-Disposition: form-data; name="file"; filename="HengShi App.hstpl"
Content-Type: application/octet-stream
------WebKitFormBoundarywj9aABghi7jHeyqX--
请求参数
名称 位置 类型 必选 说明
folderId query string 可选, 文件夹id,如果为空,就导入个人区
importAuth query string 是否导入应用授权 & 权限模式 & 行权限信息
body body object none
>> file body string(binary) 模板文件
返回结果
状态码 状态码含义 说明 数据模型
200 OK 成功 Inline
返回数据结构

POST 使用模板替换应用

使用提供的模板替换指定应用。

http

POST /api/apps/{appId}/overwrite HTTP/1.1
Accept: application/json
Content-Type: multipart/form-data; boundary=----WebKitFormBoundarywj9aABghi7jHeyqX
Cookie: csrf=183f1c4...; sid=26ee552d...; _USER_SESSION_ID=f2a01083...

file:
------WebKitFormBoundarywj9aABghi7jHeyqX
Content-Disposition: form-data; name="file"; filename="HengShi App.hstpl"
Content-Type: application/octet-stream
------WebKitFormBoundarywj9aABghi7jHeyqX--
请求参数
名称 位置 类型 必选 说明
appId path string none
copy query string 是否同时创建副本
overwriteAuth query string 是否覆盖权限配置信息
body body object none
>> file body string(binary) 模板文件
返回结果
状态码 状态码含义 说明 数据模型
200 OK 成功 Inline
返回数据结构

应用/批量操作

批量操作有以下几种类型:

  • 普通操作
    1. move
    2. delete
    3. update
    4. visible
  • 文件导出操作
    1. export-template

所有类型在批量操作预检查API中均可用,在具体执行批量操作的接口中会有区分。

说明

普通操作只能在'批量操作'API中使用。 文件导出操作只能在'批量导出操作'API中使用。

各操作支持执行对象

说明

每一种操作并不一定对所有的对象就支持,特定的对象只支持特定的操作。

下面列出每一种对象支持的操作:

/ folder app dataset chart dashboard field metric app param
move y y / / / / / /
delete y y / / / y y y
update / / / / / y y /
visible / / / / / y / /
export-template / y / / / / / /

POST 批量操作预检查

执行批量操作之前,调用该API对该操作进行合法性校验。

http

POST /api/batch/check/{batch-operation} HTTP/1.1
Content-Type: application/json
Cookie: csrf=183f1c4...; sid=26ee552d...; _USER_SESSION_ID=f2a01083...

// Request Body:
{
  "items": [
    {
      "objectType": "app",
      "idSet": [
        112326,
        129220
      ]
    }
  ],
  "args": {
    "tplVersion": "4.5",
    "exportAuth": true
  }
}
请求参数
名称 位置 类型 必选 说明
batch-operation path string 批量操作类型
body body object none
>> items body [object] 批量操作对象列表
>>>> objectType body string 批量操作对象类型
>>>> idSet body [string] 批量操作对象唯一标识集合
>> args body object 批量操作额外变量
>>>> tplVersion body string none
>>>> exportAuth body boolean none
返回结果
状态码 状态码含义 说明 数据模型
200 OK 成功 Inline
返回数据结构

POST 批量导出操作

http

POST /api/batch/export/{export-operation} HTTP/1.1
Content-Type: application/json
Cookie: csrf=183f1c4...; sid=26ee552d...; _USER_SESSION_ID=f2a01083...

// Request Body:
{
  "items": [
    {
      "objectType": "app",
      "idSet": [
        112326,
        129220
      ]
    }
  ],
  "args": {
    "tplVersion": "4.5",
    "exportAuth": true
  }
}
请求参数
名称 位置 类型 必选 说明
export-operation path string 批量导出操作
body body object none
>> items body [object] none
>>>> objectType body string none
>>>> idSet body [string] none
>> args body object none
>>>> tplVersion body string none
>>>> exportAuth body boolean none
返回结果
状态码 状态码含义 说明 数据模型
200 OK 成功 Inline
返回数据结构

POST 批量操作

执行批量操作

请求参数
名称 位置 类型 必选 说明
batch-operation path string 批量操作类型
body body object none
>> items body [object] none
>>>> objectType body string none
>>>> idSet body [string] none
>> args body object none
>>>> targetId body integer none
>>>> keepAuth body boolean none

RequestResponse

http

POST /api/batch/operation/{batch-operation} HTTP/1.1
Content-Type: application/json
Cookie: csrf=183f1c4...; sid=26ee552d...; _USER_SESSION_ID=f2a01083...

// Request Body:
{
  "items": [
    {
      "objectType": "app",
      "idSet": [
        129052
      ]
    }
  ],
  "args": {
    "targetId": 3270,
    "keepAuth": false
  }
}
返回结果
状态码 状态码含义 说明 数据模型
200 OK 成功 Inline
返回数据结构

状态码 200

名称 类型 必选 约束 中文名 说明
>> code integer true none none
>> msg string true none none
>> data object true none none
>>>> items [object] true none none
>>>>>> objectType string false none none
>>>>>> successIdSet [integer] false none none
>> chartDataStartTimeMillis integer true none none

衡石文档相关参考资料:应用

相关推荐
字节跳动数据平台5 小时前
火山引擎数智平台:高性能ChatBI的技术解读和落地实践
大数据·大模型·数据可视化·bi
aimmon2 天前
Superset二次开发之源码DependencyList.tsx 分析
前端·typescript·二次开发·bi·superset
佛州小李哥6 天前
利用AI驱动智能BI数据可视化-深度评测Amazon Quicksight(四)
人工智能·信息可视化·数据分析·aws·数据·bi·亚马逊云科技
aimmon7 天前
Superset二次开发之修改Docker容器env 参数
运维·docker·容器·bi·superset
FIT2CLOUD飞致云8 天前
透视表支持自定义聚合公式,新增字体管理功能,DataEase开源BI工具v2.10 LTS版本发布
开源·嵌入式·数据可视化·dataease·bi
希艾席蒂恩20 天前
深入解析财务报表:掌握重要财务指标的技巧
大数据·数据库·报表·数据可视化·bi
向上的车轮21 天前
什么是BI?BI系统的功能有哪些?哪些人需要BI工具支持?
信息可视化·bi
希艾席蒂恩22 天前
零代码上手,工厂数据管理从未如此简单
大数据·数据库·报表·数据可视化·bi
qingyunliushuiyu22 天前
数据门户如何搭建
数据挖掘·数据分析·etl·数据可视化·bi