1.背景说明
目前Smartbi提供的 Java API 在第三方系统集成Smartbi时,使用起来非常的不方便,特别是使用Smartbi的服务端SDK接口,需要引入大量的jar包,同时在调用SDK的方式时还需要使用用户名密码进行登录,不利于使用。
因此,针对一些常用的后端API接口,封装成可 HTTP 方式调用的接口。
2.使用说明
2.1 扩展包部署
扩展包:SmartbiAPI接口插件
扩展包部署 ,详细说明请参考Wiki链接:扩展包部署
2.2 配置说明
在成功部署 【Smartbi API 插件】扩展包后,访问Smartbi的Config配置界面 (地址为 http://IP:PORT/smartbi/vision/config.jsp),配置令牌登录的信息:密钥、超时时间等,详细说明可参考:令牌登录功能说明
注:需要记住该密钥,后面第三方系统调用API接口,生成smartbiToken时需要使用到该密钥。
2.2 smartbiToken参数生成
API接口中使用到的smartbiToken参数是与 令牌登录功能说明 中的smartbiToken令牌的生成规则相同的。
token的结构参考如下:
1 | { "timestamp":时间戳, "username":"用户名", "password":"可选,用户密码", "extend":{"扩展对象,用于一些额外业务扩展,比如增加系统标识" } } |
token为json格式,其中时间戳在java语法中指new java.util.Date().getTime()获取的毫秒数,如1648519473246,不需要双引号,其他部分的双引号不可以缺少
使用 smartbi-CryptoUtil.zip 中的 smartbi-CryptoUtil.jar 的工具类的encrypt方法(默认使用AES-GCM方式加密)来加密token来获得令牌(smartbiToken),其中加密API是:smartbi.crypto.CryptoUtil.encrypt(String, String)。
另外DES的加密API是:CryptoUtil.encrypt(AlgorithmType.DES,String,String)。
smartbiToken的生成示例:
2.3 API接口格式:
链接格式:http://ip:port/smartbi/vision/api/xxxxx?smartbiToken=用户信息加密串¶msInfo=接口参数
链接格式解析 | 作用 |
---|---|
ip:port | Smartbi系统服务器地址及端口 |
smartbiToken | 令牌,即使用AES或DES加密的token信息,token信息需要使用encodeURIComponent转义,避免 token中存在特殊字符 |
paramsInfo | 入参结构参考如下:JSON对象序列化后的字符串。 |
2.4 API接口说明
目前在Smartbi API接口插件中仅整理了一部分的常用接口,具体接口调用方式和接口说明请见附件文档:SmartbiAPI接口说明文档_V1.0.pdf