Web页面嵌入式集成

编辑
文档创建者:doreen0813 (83193 )     浏览次数:817次     编辑次数:16次     最近更新:doreen0813 于 2018-11-13     

目录:

 1、描述编辑

FineBI是基于B/S架构的浏览器/服务器模式,现在用户开发的系统基本上趋向于B/S架构的浏览器/服务器模式,因此有些页面完全可以直接采用web页面嵌入式集成的简易方式完成集成。通过集成,用户从自己的系统通过链接使用浏览器访问FineBI的服务器,从而在自己系统内调用BI的web页面,来实际嵌入式集成。这种集成通常会有两种方式:一种是直接使用URL链接,另一种方式是通过js的调用json来获得分析模板。下面先提供各部分的URL链接接口、json格式的API。

因为FineBI中URL上面传的是json对像,若有些服务器不支持json的url,就需要把json类型的url参数值先进行编码encodeURIComponent()。

例如:dir={"name":"新建仪表板12","catalog":[]} 需要

encodeURIComponent(JSON.stringify({"name":"新建仪表板12","catalog":[]}))

变成

dir=%7B%22name%22%3A%22%E6%96%B0%E5%BB%BA%E4%BB%AA%E8%A1%A8%E6%9D%BF12%22%2C%22catalog%22%3A%5B%5D%7D


注:由于平台安全限制,FineBI在集成时需要将管理系统>安全管理>安全防护中的Security Headers关闭才可跨域。  

2、API编辑

注:以下接口均支持跨域,且跨域与不跨域的返回值均一致。 
2.1 登录API

作用:使用该接口可以登录BI系统

URL:/login/cross/domain?fine_username=name&fine_password=password&validity=-1&callback=myfunction

参数说明:

  参数说明   示例 
  fine_username  登录用户名  fine_username=admin
  fine_password  登录密码  fine_password=123456

请求方式:GET

请求示例:localhost:37799/webroot/decision/login/cross/domain?fine_username=admin&fine_password=123456&validity=-1&callback=myfunction

222

2.2 模板管理节点API(JSON)

作用:使用该接口可以获取模板管理节点下所有模板相关信息

URL:/v5/api/dashboard/search?page=1&count=30

请求方式:GET

请求示例:localhost:37799/webroot/decision/v5/api/dashboard/search?page=1&count=30


2.3 模板管理节点API(界面)

作用:使用该接口可以获取模板管理节点下所有模板相关信息的可视化界面

URL:/dashboard/management

请求方式:GET

请求示例:localhost:37799/webroot/decision/dashboard/management

返回示例:

222

2.4 创建仪表板API

作用:使用该接口可以新建一个仪表板

URL:/v5/api/platform/dashboard/reports?dir=xxx

参数说明:

  参数说明    示例
  dir  创建到的目录结构  dir={"name":"新建仪表板12","catalog":["新建文件夹"]}

请求示例:localhost:37799/webroot/decision/v5/api/platform/dashboard/reports?dir={"name":"新建仪表板12","catalog":["新建文件夹"]}

返回数据示例:

{ "code": "200", "data": { "applyTime": 0, "createBy": "b5f0c2ee-640f-4039-a4d4-918b55354898", "folder": false, "hangout": "NORMAL", "id": "0ba9d9496aee4bba95fcf60d78473115", "initTime": 1539157863240, "lastUpdateTime": 1539157863241, "mountedDirIds": null, "name": "新建仪表板12", "pId": "d5a78c3fc1f643059f02ff43fbdd44a9", "publicLink": { "reportId": "0ba9d9496aee4bba95fcf60d78473115", "shared": false, "uri": null, "userId": null } }, "detailErrorMsg": null, "errorCode": null, "errorMsg": null, "message": "success", "success": true }

2.5 分享仪表板API

作用:使用该接口可以分享模板给其他用户

URL:/v5/api/dashboard/share/user/result?entityId=xxx&userId=xxx

参数说明:

参数  说明   示例
  entityId  xx模板对应的reportId,传多个的话,用逗号分隔 entityId=14523
  userId  想要分享给其他用户的用户ID,传多个的话,用逗号分隔 userId=b5f0c2ee

请求方式:GET

请求示例:localhost:37799/webroot/decision/v5/api/dashboard/share/user/result?entityId=14523&userId=b5f0c2ee

注意:只能分享给某个用户,不能分享给部门或者角色。   

其中entityId可以通过模板编辑页面获取,如下图:

222

userId可以通过查看分享页面用户的源码获取,如下图:

222

2.6  当前目录下模板及文件夹列表API(Json)

作用:我的(当前登录者)仪表板下对应目录的详细数据信息(包括文件夹和模板)

URL:/v5/api/platform/dashboard/list?dir=xxx

参数说明:

  参数说明  示例  
  dir创建到的目录结构    dir={"catalog":["新建文件夹"]}

请求示例:localhost:37799/webroot/decision/v5/api/platform/dashboard/list?dir={"catalog":["新建文件夹"]}

返回数据示例:

{ "code": "200", "data": [ { "applyTime": 0, "createBy": "b5f0c2ee-640f-4039-a4d4-918b55354898", "folder": false, "hangout": "NORMAL", "id": "0ba9d9496aee4bba95fcf60d78473115", "initTime": 1539157863240, "lastUpdateTime": 1539157863241, "mountedDirIds": [], "name": "新建仪表板12", "pId": "d5a78c3fc1f643059f02ff43fbdd44a9", "publicLink": { "reportId": "0ba9d9496aee4bba95fcf60d78473115", "shared": false, "uri": null, "userId": null } }, { "applyTime": 0, "createBy": "b5f0c2ee-640f-4039-a4d4-918b55354898", "folder": false, "hangout": "NORMAL", "id": "7e6382e9fe5448b38bb0bc3f50913b5d", "initTime": 1539157797060, "lastUpdateTime": 1539157797061, "mountedDirIds": [], "name": "新建仪表板", "pId": "d5a78c3fc1f643059f02ff43fbdd44a9", "publicLink": { "reportId": "7e6382e9fe5448b38bb0bc3f50913b5d", "shared": false, "uri": null, "userId": null } } ], "detailErrorMsg": null, "errorCode": null, "errorMsg": null, "message": "success", "success": true }

2.7 当前目录下模板及文件夹列表API(界面)

作用:我的(当前登录者)仪表板下对应目录的详细数据信息(包括文件夹和模板)

URL:/dashboard

请求方式:GET

请求示例:localhost:37799/webroot/decision/dashboard

返回示例:

222

2.8 当前用户信息API

作用:使用该接口可以获取当前用户的所有详细信息。目前包括departs、roles、users、reports

角色:所有用户均可以使用

URL:/v5/api/dashboard/user/info

请求方式:GET

请求示例:localhost:37799/webroot/decision/v5/api/dashboard/user/info

返回数据示例:

{ "data": { "userInfo": { "displayName": "1(1)", "postNames": null, "departmentNames": null, "customRoleNames": ["superusers"], "departmentPosts": null }, "dashboards": [{ "name": "新建仪表板", "folder": false, "initTime": 1537768614423, "lastUpdateTime": 1538032909774, "id": "b63ae18862c0424d983865cbaa0dc7c4", "pId": "53968b8b-14f4-4ec1-b9e0-347b1105af2d", "createBy": "53968b8b-14f4-4ec1-b9e0-347b1105af2d", "hangout": "NORMAL", "publicLink": { "shared": false, "uri": null, "reportId": "b63ae18862c0424d983865cbaa0dc7c4", "userId": null }, "mountedDirIds": [], "applyTime": 0 }, { "name": "新建仪表板1", "folder": false, "initTime": 1537768667041, "lastUpdateTime": 1538032909810, "id": "af0835a860c1460da5d78f5a871ccc05", "pId": "53968b8b-14f4-4ec1-b9e0-347b1105af2d", "createBy": "53968b8b-14f4-4ec1-b9e0-347b1105af2d", "hangout": "NORMAL", "publicLink": { "shared": false, "uri": null, "reportId": "af0835a860c1460da5d78f5a871ccc05", "userId": null }, "mountedDirIds": [], "applyTime": 0 }] }, }

2.9 获取模板相关信息API

作用:使用该接口可以获取模板相关信息。输入:模板ID和创建者ID;返回:模板信息

URL:/v5/api/platform/dashboard/reports/info?info=xxx

参数说明:

  参数  说明  示例
  info  需要查看的模板目录  info={"index":[  { "id":"7e6382e9fe5448b38bb0bc3f50913b5d" }] }

请求示例:localhost:37799/webroot/decision/v5/api/platform/dashboard/reports/info?info={"index":[  { "id":"7e6382e9fe5448b38bb0bc3f50913b5d" }] }

返回数据示例:

{ "code": "200", "data": { "index": [ { "createBy": "1", "folder": false, "id": null, "initTime": 1539157797060, "lastUpdateTime": 1539157797061, "name": "新建仪表板", "pId": "d5a78c3fc1f643059f02ff43fbdd44a9" } ] }, "detailErrorMsg": null, "errorCode": null, "errorMsg": null, "message": "success", "success": true }

2.10 分享给我的模板信息API

作用:使用该接口可获取分享给我(当前登录用户)的所有模板信息

URL:/v5/api/dashboard/share

请求示例:localhost:37799/webroot/decision/v5/api/dashboard/share

返回数据示例:

{ "code": "200", "data": [ { "buildUrl": true, "createBy": "b5f0c2ee-640f-4039-a4d4-918b55354898", "description": null, "id": "e5bc1ae63f944050b43d031c21d01847", "originType": "isShared", "pId": "-2", "text": "用指标解析银行数据" } ], "detailErrorMsg": null, "errorCode": null, "errorMsg": null, "message": "success", "success": true }

2.11 模板分享到的用户API

作用:使用该接口可以获取xx模板分享给了哪些用户

URL:/v5/api/dashboard/share/user?entityId=xxx

参数说明:
  参数  说明 示例 
  entityIdxx模板对应的reportId    entityId=14523

请求示例:localhost:37799/webroot/decision/v5/api/dashboard/share/user?entityId=14523

2.12 触发全局更新API

作用:使用该接口触发全局更新,根据当前业务包的状态选择是全局更新/Check更新/配置更新

URL:/v5/api/conf/update/generate

请求示例:localhost:37799/webroot/decision/v5/api/conf/update/generate

返回数据:

{ "success": true }

2.13 触发单表更新API

作用:根据业务包名对业务包中所有的表进行更新,或者根据表转义名进行单表更新。 无论是业务包还是单表的更新,都进行的是业务包表或单表的全量的更新。 在不加表的转义名时候,进行的就是对这个业务包的更新,加了之后,进行的是对这个表的更新

URL:/v5/api/conf/update/pack/table?info=xx

参数说明:

  参数说明    示例
  info  需要更新的表信息  info={"packageName":"业务包","tableName":"表转义名"}

请求示例:localhost:37799/webroot/decision/v5/api/conf/update/pack/table?info={"packageName":"业务包","tableName":"产品销售表"}

返回数据:

{ "success": true }

2.14 获取所有业务包信息API

作用:在做集成的时候,不能自己一个个手动输入业务包名字或者表的名字来做相应的单更新,就需要有个接口来获取到这些信息

URL:/v5/api/conf/packs/{packageId}

请求示例:localhost:37799/webroot/decision/v5/api/conf/packs/{packageId}

返回数据示例:

{ "code": "200", "data": { "editable": true, "errorTable": [], "missTable": [], "name": "销售DEMO", "tables": [ { "connectionName": "BI Demo", "createBy": "1", "editable": true, "fields": [ { "enable": true, "engineType": "Direct", "fieldGroupType": 0, "id": "DEMO[5f]PRODUCT_[4ea7][54c1]ID", "name": "产品ID", "primaryKey": false, "size": 32, "transferName": "产品ID", "type": 32, "usable": true }, { "enable": true, "engineType": "Direct", "fieldGroupType": 0, "id": "DEMO[5f]PRODUCT_[4ea7][54c1][540d][79f0]", "name": "产品名称", "primaryKey": false, "size": 32, "transferName": "产品名称", "type": 16, "usable": true } ], "initTime": 1539161534282, "memorize": true, "name": "DEMO_PRODUCT", "operators": null, "pack": "18d26ef06d1f4e91adaa12c80feb2daa", "realTimeData": false, "selected": 0, "tableName": "DEMO_PRODUCT", "transferName": "产品名称维度", "type": 1, "usedSpace": 0.0007028579711914062 }, ] }, "detailErrorMsg": null, "errorCode": null, "errorMsg": null, "message": "success", "success": true }

返回的数据包括两部分:

1. 获取所有的分组的名字,以及对应业务包的名字

    a. 返回当前用户有权限的所有的分组的名字,以及对应业务包的名字;

2. 获取某个业务包之下所有表的名字(转义之后的名字)以及表id

  1. 输入参数:业务包的名字;
  2. 返回这个业务包之下所有表的名字(转义之后的名字)以及表id

2.15 数据准备界面API

作用:获取数据准备界面

URL:/v5/api/conf/page

请求示例:localhost:37799/webroot/decision/v5/api/conf/page

返回示例:

222


注:FineBI在嵌入式集成时一般分为两步:获取token和调用其他相关API,具体可参考Web页面简单集成例子

Web页面集成的相关DEMO及返回参数可参考Web页面集成DEMO

附件列表


主题: 部署集成
标签: 暂无标签 编辑/添加标签
如果您认为本文档还有待完善,请编辑

文档内容仅供参考,如果你需要获取更多帮助,付费/准付费客户请咨询帆软技术支持
关于技术问题,您还可以前往帆软社区,点击顶部搜索框旁边的提问按钮
若您还有其他非技术类问题,可以联系帆软传说哥(qq:1745114201

本文档是否有用? [ 去社区提问 ]