一、概述编辑
二、功能介绍编辑
【所有API】是对第三方系统与FR进行资料互动服务的配置。
界面左侧为分组,是对服务API进行分组的管理,系统內建了多种常用分组。
使用者可对分组进行新增、编辑、删除的管理操作,编辑和删除不可对内置的分组进行操作。
选中一个分组后,界面右侧展示该分组下的服务API列表,系统內建了多种常用的服务API。
使用者可对服务API进行新增、编辑、禁用、单个删除、批量删除和更换分组的操作。
注:内置的分组是无法编辑和删除的。
,无需配置项,这项认证不可编辑
即在请求头添加client_id={应用ID} secret={密钥}即可直接访问应用
比较推荐使用这种认证方式,相对安全一些。
。例如:【client_id=203bc7b8db1d423fb55824150327ef98,secret=98ffd41b86db4868a6875f57e6974bbc, timestamp=1600166180321, 配置的 签名算法为MD5,超时时间为300秒】->【签名 = MD5(client_id+secret+timestamp)+timestamp = EE6E14BCEC5724C3BC6FC08AFC5C2B111600166180321】
【国密SM2签名认证】
利用国密SM2 椭圆算法进行加解密,使用标准椭圆参数 签名_sign_=sm2(clientId+secret+timestamp),
配置项priKey=私钥 timeout=超时时间(秒)
API设置。编辑
,路径前面不要加/。新增加API的【API路径】,使用者也可以任意自订(注意不要和已有API的路径相同)。
实际请求地址:$HOST/sp/client/api/{API路径}。假设 $HOST = http://localhost:8075/webroot/decision ,则请求地址为 http://localhost:8075/webroot/decision/sp/client/api/{API路径}。
注:内置的API部分是不能编辑的,即便能编辑的在重启后也会还原。
对于非公开API来说,调用都是需要做权限验证的,那么我们不同的场景不同的应用可调用的接口范围肯定是不一样的,我们可以在这个页面内进行分配(公开API则可以随意调用不受这里的约束)
注:目前不存在分组权限,也就是即便是把某个分组权限打开了,实质上也只是把当前分组下面的API的权限分配给了某个客户端,如果后续发生了API分组变更,或者该分组API新增,那么权限是不会发生变化的。
三、调用示例编辑
使用开放平台首先要新建应用,并设置对应的认证方式
接下来在权限界面配置该应用的权限。
配置完了权限之后,就可以调用api接口了
3.1 SQL数据服务
这个demo示例用来向我们展示,最简单的将SQL转换成数据服务向第三方提供使用的场景
我们需要用到的接口实例是:[demo]Sql数据服务
包含两个配置项:
connection:SQL运行的数据源连接名称(比如FRDemo之类的)
sql:数据来源的SQL
这个接口主要用于一些基础的简单的数据服务的对外提供,完全不依赖于模板,只要会写SQL就可以了
比如如下的测试例子:
数据源连接 = FRDemo SQL = SELECT * FROM `销量` where 地区 = '${地区}'
这个查询中我们使用到了一个参数 地区
调用一下看看【两种传参的方式】
3.2 模板数据集数据服务
这个demo示例用来向我们展示,对于我们已经做好的模板内的数据集数据如何向第三方进行提供。
我们需要用到的接口实例是:报表数据集服务
包含两个配置项:
report:数据集的来源(相对于reportlets)
dsName:数据集的名称
这个接口主要用于一些模板里面已经做好了的数据集第三方需要使用对应数据的,或者数据的来源不是SQL的数据集数据,或者其他不适合直接向第三方开发源数据连接的数据服务。
比如如下的测试例子:
模板路径 = GettingStarter.cpt 数据集名称 = ds1
这个查询中我们使用到了一个参数 地区
调用一下看看【两种传参的方式】
3.3 填报接口调用
填报接口这个demo主要用于展示,当我们希望向第三方提供 数据录入/审批 这类业务服务的时候我们如何借助模板来简单的实现。
首先它需要用到我们开发好的接口实例:com.tptj.plugin.hg.client.center.api.data.WriteReport
配置上支持两个配置项
report : 某个填报模板的路径(相对于reportlets目录)
sheet:【可选】需要执行的具体某个sheet名称对应sheet的模板填报属性内的填报业务。【如果不填这个参数,就会执行所有sheet的模板填报属性内的填报业务】。
注:该填报不会触发JS相关事件!
注:这里我们用到了body这个参数,这个参数可以直接通过URL传,也可以通过请求的body传(仅限通过调用接口服务的情况下)
如果http请求的body是一个json,那么在计算的报表内有两种引用
1.直接通过 $body 或者${body} 这个参数名获取到整个json字符串
2.如果如果是{ key1:xxxx,key2:ffffff,...,keyN:fsss }这种结构的body,还可以直接通过$key1,$key2,....$keyN在报表中使用这些参数
3.4 简单报表行列式数据服务
这个demo示例用来向我们展示,对于一些无法用单个数据集简单取出的数据,可以通过制作成简单的报表的形式输出数据服务。
我们需要用到的接口实例是:com.tptj.plugin.hg.client.center.api.data.GetListByReport
包含两个配置项:
report:数据来源的报表路径(相对于reportlets)
tag:数据来源的sheet名
这个接口主要用于一些模板里面已经做好了的数据集第三方需要使用对应数据的,或者数据的来源不是SQL的数据集数据,或者其他不适合直接向第三方开发源数据连接的数据服务。
比如如下的测试例子:
模板路径 = WorkBook12.cpt sheet名 =sheet1
这个查询中我们使用到了一个参数 地区
通过两个数据集关联实现
我们定义的demo接口配置详情如下
实际测试效果如下【两种传参方式】
特别说明:这并不是一个真正通用的接口实现,如果要使用这个接口实例,制作的模板必须满足以下的限制
只支持纯数据表格
目前简单的把一个sheet分成了以下几种情况
数据行:从上往下,逐行从左往右查看,找到的第一个有 “向下扩展”单元格的且该单元格所在行未隐藏的行作为数据的起始行。往下所有的内容都被简单认为是要输出的数据区域(所以限制了我们一个sheet内只能有一个数据区域)
标题行:数据行之前的所有行中,如果该行只有一个格子有值,且该行未隐藏,则该行被作为标题行。可以有多个标题行,输出顺序按行序号排序(明细数据中不输出标题)
列表头行:数据行之前的所有行中,如果该行有超过一个格子有值,且该行未隐藏,则该行被作为列表头行。可以有多层列表头,但是目前每列的列表头只取最接近数据行的列表头单元格的值作为该列的列表头。
空行:所有行高等于0,或者一整行都没有数据的行。空行不会输出
空列:列宽等于0,或者该列的列表头的值是空的。空列不会输出
合并行的数据会按最合并小行粒度输出。
注:不要使用复杂或大数据量模板
3.5 简单报表分组式数据服务
这个demo示例用来向我们展示,对于一些无法用单个数据集简单取出的数据,可以通过制作成简单的报表的形式输出数据服务。
我们需要用到的接口实例是:报表分组式数据服务
包含两个配置项:
report:数据来源的报表路径(相对于reportlets)
tag:数据来源的sheet名
比如如下的测试例子:
模板路径 = WorkBook12.cpt sheet名 =sheet1
这个查询中我们使用到了一个参数 地区
通过两个数据集关联实现
我们定义的demo接口配置详情如下
实际测试效果如下【两种传参方式】
特别说明:这并不是一个真正通用的接口实现,如果要使用这个接口实例,制作的模板必须满足一定的限制,限制跟简单报表行列式数据服务相同
注:不要使用复杂或大数据量模板
目前开放的部分API:编辑
定制开发范例-自订认证方式及API
应用场景:內建的认证方式或API不足以满足业务需求,希望能够添加自订开发认证方式或API。
范例代码及说明:jee/open-client-demo: 开放平台子插件demo - open-client-demo - 帆软第三方插件仓库 (fanruan.com)
注:该范例为定制开发范例,仅做参考。用户可参考相关逻辑自行开发,如需官方开发人员做相关定制开发,请联系对应销售经理进一步咨询。