数据源插件开发示例
DataEase 支持引入数据源插件机制以提高系统可扩展性,本文介绍如何从零开始开发一个 DataEase 数据源插件。
注意: 插件开发面向程序员,涉及到的技术有 Java 、Vue。
1 插件框架¶
1.1 获取框架¶
进入 GitHub 下载源码:https://github.com/dataease/dataease/tree/dev/extensions 。
1.2 安装依赖¶
如果能正常安装所有依赖则跳过此步骤,否则继续:
插件框架依赖 dataease-extension-sdk,如果提示缺少这部分依赖,需要下载 sdk 源码手动安装;
sdk 源码地址:https://github.com/dataease/dataease/tree/dev/sdk 。
下载完成在根目录下执行:
mvn clean install
1.3 运行测试¶
在插件框架根目录 dataease-extensions 下执行:
cd dataease-extensions-view/kingbase/kingbase-frontend
npm i
npm run dev(打包指令:npm run buildPlugin)
2 插件 demo¶
下面以 Kingbase V8 数据库为例,详细描述如何使用插件框架开发一个数据源插件。
2.1 创建 demo 工程¶
使用 IDEA 创建 Maven 工程名为 kingbase,删除 src,修改 pom.xml 并增加如下配置。
提示: 创建的 demo 工程可以是独立的,不是一定要在框架源码中创建。
前端代码:
如下示例图,在前面下载的插件框架中找到插件前端 demo ,整个文件夹复制到上步创建好的 kingbase 工程下,并重命名为 kingbase-frontend 。
修改 kingbase-frontend 目录下的 pom.xml 。
把修改完成的 pom 加载为 Maven 模块。
修改 kingbase/pom.xml 建立父子级关系,注意一定是 frontend 在前。
提示:后端代码同上操作。
2.2 前端实现¶
将 dm.vue 重命名为 kingbase.vue,然后写入前端代码,包括金仓数据源连接信息录入样式以及对应的逻辑。
修改对应的多语言文件(zh.js/tw.js/en.js)。
代码修改完成后需要配置 webpack 插件打包,此配置可分别打包 Vue 成单独的 js 文件。
图片文件调整,如下图所示。
2.3 后台实现¶
首先将 dm 文件夹重命名为 kingbase,以及其他相关的后台逻辑文件重命名为 kingbaseXXX。
在 KingbaseConfig.java 文件中写入驱动信息。
在 KingbaseDsProvider.java 文件中写入数据库信息获取逻辑。
在 KingbaseConstants.java 文件中写入基本的数据库关键字。
在 KingbaseQueryProvider.java 文件中写入查询逻辑。
在 KingbaseService.java 文件中写入连接数据源的一些基础信息。
在 kingbase 目录下创建文件夹 kingbaseDriver,并将数据库驱动文件放入此文件夹中。
2.4 打包测试¶
在根目录下执行:
mvn clean package
如下示例图,在前面下载的插件框架中找到 demo 中的 plugin.json 文件以及 build.sh 文件,将文件复制到上步创建好的 kingbase 工程下。
将 build.sh 和 plugin.json 文件进行修改,如下图所示。
name | 插件名称(保证唯一) |
store | 来源 |
free | 是否免费 |
cost | 多少钱 |
category | 插件类别 |
descript | 描述 |
version | 版本对应的后台工程版本 |
creator | 作者 |
moduleName | 模块名称对应后台工程模块名称 |
require | 要求 DataEase 最低版本 |
dsType | 数据来源类型 |
在 kingbase 目录下执行:
sh bulid.sh
2.5 安装插件¶
在【系统管理】插件管理安装插件,上传已打包的 kingbase.zip 文件。
安装成功后,在插件管理列表多一条记录,同时新建插件的类型选项也会多出一种类型。
提示: 如果页面没显示新的数据源插件类型,请清除浏览器缓存重新登录。