背景
开放平台基础数据接口分组里面的接口使用介绍,这个分组里面的接口和其他接口有点不一样,会涉及到一个配置数据,所以单独写个文档每个接口介绍一下使用。
接口调用
接口调用的方式,需要怎么鉴权和其他接口调用是一样的,这边不介绍了,文档主要介绍每个接口实现的功能,配置项含义和传递参数的含义。
报表数据服务接口
接口地址:http://ip:port/webroot/decision/sp/client/api/ds/data
请求方式:GET
接口作用:返回cpt模板或者frm模板里面的数据集数据(目前不支持FVS)
通过配置项里面确认具体的模板和数据集名称,示例如下图:
配置中的名称是固定的,并且值无法通过参数进行传递的
report:模板的具体路径
dsName:数据集名称
如果数据集计算需要传递参数,那么可以通过访问接口时候传入对应名称的参数。
调用示例
模板配置,test.cpt模板中,添加了一个user名称的数据集,访问finedb中的用户表,并且数据集计算需要传入userName参数
接口配置,配置模板路径和数据集名称
接口访问,通过query参数传递数据集计算需要的userName参数
返回成功示例:
{
"status": 200,
"data": [
{
"LANGUAGE": null,
"LASTOPERATIONTYPE": 1,
"REALNAME": "2",
"TENANTID": "default",
"USERALIAS": "2",
"ENABLE": true,
"REALALIAS": "2",
"EMAIL": "",
"MALE": true,
"CREATIONTYPE": 1,
"SALT": "e6618614-05c1-4748-b43d-9c30aa6806fa",
"PASSWORD": "d4735e3a265e16eee03f59718b9b5d03019c07d8b6c51f90da3a666eec13ab35",
"DESCRIPTION": null,
"USERNAME": "2",
"ID": "cb74b33c-d8f3-4b35-97e2-da9b666ece97",
"BIRTHDAY": null,
"MOBILE": "",
"WORKPHONE": null
}
]
}
返回失败示例:
{
"status": 400,
"errorCode": "E000016",
"errorMsg": "[com.tptj.plugin.hg.client.center.api.data.AbstractDataApi.getTableDataSource][读取模板文件异常:错误代码:11300004 没有找到模板文件:reportlets/tet.cpt-[tet.cpt]错误代码:11300004 没有找到模板文件:reportlets/tet.cpt]"
}
报表分组数据服务
接口地址:http://ip:port/webroot/decision/sp/client/api/group/report/data
请求方式:GET
接口作用:返回cpt模板指定sheet的数据
通过配置项指定模板路径、sheet名称、以及是否返回单元格显示值,如下图:
通过接口访问时候传递模板计算所需要的参数。
接口调用示例
还是以test.cpt为例,模板预览结果
接口调用
返回成功示例
{
"status": 200,
"data": {
"title": [
"标题"
],
"items": {
"租户id": "default",
"items": [
{
"语言": null,
"电话": "",
"创建类型": 1,
"items": [
{
"实际名称": "4"
},
{
"实际名称": "3"
},
{
"实际名称": "2"
}
]
},
{
"语言": "zh_CN",
"电话": null,
"创建类型": 1,
"实际名称": "1"
}
]
}
}
}
返回值逻辑详解
目前只支持cpt模板,解析标题、表头、和内容的逻辑:
计算完的第一个有数据的行作为标题行
计算完的第二个有数据的行作为表头
计算完的第三行起都作为表格数据
隐藏列不输出,隐藏行不输出,也不计入前三行的判断中
返回值从左往右根据内容进行相同内容合并
此接口目前解析适用场景较少,所以此接口更多作为一个示例,不建议在业务中使用。
报表数据服务
接口地址:http://ip:port/webroot/decision/sp/client/api/list/report/data
请求方式:GET
此接口和报表分组数据服务接口配置和作用一样的,只是此接口将模板数据作为一个明细表返回。
所以这边只提供接口调用示例,以及返回值示例,配置项含义参考报表分组服务接口
返回值示例:
{
"status": 200,
"data": [
{
"语言": null,
"租户id": "default",
"电话": "",
"创建类型": 1,
"实际名称": "4"
},
{
"语言": null,
"租户id": "default",
"电话": "",
"创建类型": 1,
"实际名称": "3"
},
{
"语言": null,
"租户id": "default",
"电话": "",
"创建类型": 1,
"实际名称": "2"
},
{
"语言": "zh_CN",
"租户id": "default",
"电话": null,
"创建类型": 1,
"实际名称": "1"
}
]
}
返回值标题、表头、表格数据解析逻辑和报表分组数据服务接口一样,只是将表格数据作为明细返回了。
Sql数据服务
接口地址:http://ip:port/webroot/decision/sp/client/api/sql/data
请求方式:GET
接口作用:指定jdbc数据连接下执行sql,并且返回执行结果
接口配置项:
connection:数据连接名称
sql:sql语句,支持帆软数据集的参数写法,示例:SELECT * FROM `销量` where 地区 = '${地区}' ,调用接口的时候可以根据参数名传入对应的参数值
接口调用示例
配置项:
传入地区参数执行sql
返回值示例:
{
"status": 200,
"data": [
{
"地区": "华东",
"销售员": "孙林",
"产品": "苹果汁",
"产品类型": "饮料",
"英文简称": "sunlin",
"销量": 140
},
{
"地区": "华东",
"销售员": "金士鹏",
"产品": "苹果汁",
"产品类型": "饮料",
"英文简称": "jinshipeng",
"销量": 290
}
]
}
填报服务接口
接口地址:http://ip:port/webroot/decision/sp/client/api/write/report/data
请求方式:POST
接口作用:指定模板,根据传入的参数填报方式预览模板,并且执行对应的填报提交
接口配置项
report:指定模板的路径
接口调用示例
模板配置:填报属性往FRDemo的销量表中填报数据,引用的单元格数据,单元格的值直接引用的参数值。正常预览模板并且传入对应的参数值,点击填报就可以将数据填报到对应数据库表。
接口配置:指定刚刚的配置的submit.cpt
接口调用:通过query传入模板计算需要的参数
提交结果
所以接口作用就是将指定的模板传入参数计算一遍,然后填报提交。和直接填报预览完手动点击填报按钮的效果是一样的。
默认参数
接口配置中有个默认参数配置,这个和配置一样可以设置一些参数的值,这个只是一个预留配置,方便接口编辑的时候默认设置一些配置值,不会影响到访问接口的时候的参数值。
扩展使用
通过上面数据服务接口分组里面的接口都是在接口配置项里面制定对应的数据集和模板,是无法调用接口动态传递的,这样设计是为了安全考虑,不允许调用方去指定模板或者数据集,只能是管理员配置接口的时候设置。
这样就容易出现了一个问题,当有模板或者数据集需要通过接口开放的时候只有一个接口是无法实现。
这个可以通过接口复制功能,然后修改复制后的接口访问地址和配置项来完成对应的功能。
以报表数据服务接口接口为例,复制一个新的同样功能接口出来。
点击是复制按钮
为复制出来的接口设置分组
修改复制出来接口的名称和路径
为新接口授权
修改新接口的配置项,模板依然选择test.cpt,dsName重新设置
模板中新加数据集
使用新地址调用接口