searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

gin-vue-admin插件化开发指南

2023-09-27 09:19:09
51
0

 

实现这个plugin接口即可实现插件化,把路由的能力暴露给插件,插件里面做什么事情自己控制就好。

麻雀虽小五脏俱全,前后端插件目录(需要实现的插件内容)如下图所示:
web端:

server端:

 

页面提供了“插件模板”功能,可以自动生成插件的server后端目录和目录中框架性的文件(只能生成后端目录文件)。如下图所示,路由组就是所做的插件注册在哪个路由名称下面。全局属性就是所需的一些配置性质的东西,用户在init的时候可以传入,完全配置在插件里面用的。

点击“创建”:

看一下"模板创建"生成的后台server端代码效果:

CreateEditorPlug暴露给用户注册的地方,注册的时候就会把Name和Creater传进来,就会自动注册进全局的config里面,全局属性配置在config里面并且在global里面new出来创建实例,直接去GlobalConfig里面去使用。

 

Reqest和Response会放在model中:

router指引到对应api接口,api接口直接调用service中的业务逻辑接口:

当然,插件模板生成的只是一些框架性的内容(而且只能生成插件后端server框架代码,具体业务功能还需要自己去实现。下面就以一个现有官方的插件用例email为例理解一下插件功能实现原理。

前端代码:

api是跟后端server交互部分,view部分是页面视图展示部分。

后端server代码,目录部分跟用插件模板功能生成的基本相同,也可以根据插件的具体情况增加相关的目录或文件。

现在前后端代码都有了,还有一步配置步骤,保证plugin能运行起来。路由初始化时时实现pluge的初始化,就是在initialize下的plugin做如下配置。

无鉴权的插件:不会走角色那一套,不会走jwt, casbin等,可以随意给插件增加中间件,或者自定义的东西。

鉴权插件:走jwt,casbin,可以拿到当前用户的一些信息跟角色用户挂钩做一些相关的操作。

上图中CreateEmailPlug接口中的传参是直接读取的框架的整体配置文件,这个地方需要做一下配置文件的隔离,也是优化点,插件配置文件单独存在,后面在编写的小插件pgtest中做了优化。

现在代码部分已经完成,plugin初始化逻辑调用如下图所示。

后端server收到前端web发送的请求后,逻辑流程为:

代码逻辑原理就是这些,回到项目中来,后台代码都有了,与用户交互的配置如下:

刷新页面在“插件系统”下可以看到“邮件插件测试”的子菜单:

打包插件功能:

可以查看email.zip的目录结构,我们自己打包也要遵循该打包结构:

安装插件功能:

点击上传zip包,可以看到web和server端pluge目录下都增加了相应的插件目录。

     

 

 

以自己写的一个简单的小插件pgtest为例讲述一下目前的插件方案:

该插件功能是将输入的个数值与插件配置文件中的阈值进行比较,若大于该阈值就会报错。

1、先看一下效果图,输入数值,然后点击“个数检测”。

2、web端目录结构以及文件,目前展示的只有api和view目录,可以根据插件功能增加功能目录。

2、server端目录结构以及文件

 

0条评论
0 / 1000
l****n
2文章数
0粉丝数
l****n
2 文章 | 0 粉丝
l****n
2文章数
0粉丝数
l****n
2 文章 | 0 粉丝
原创

gin-vue-admin插件化开发指南

2023-09-27 09:19:09
51
0

 

实现这个plugin接口即可实现插件化,把路由的能力暴露给插件,插件里面做什么事情自己控制就好。

麻雀虽小五脏俱全,前后端插件目录(需要实现的插件内容)如下图所示:
web端:

server端:

 

页面提供了“插件模板”功能,可以自动生成插件的server后端目录和目录中框架性的文件(只能生成后端目录文件)。如下图所示,路由组就是所做的插件注册在哪个路由名称下面。全局属性就是所需的一些配置性质的东西,用户在init的时候可以传入,完全配置在插件里面用的。

点击“创建”:

看一下"模板创建"生成的后台server端代码效果:

CreateEditorPlug暴露给用户注册的地方,注册的时候就会把Name和Creater传进来,就会自动注册进全局的config里面,全局属性配置在config里面并且在global里面new出来创建实例,直接去GlobalConfig里面去使用。

 

Reqest和Response会放在model中:

router指引到对应api接口,api接口直接调用service中的业务逻辑接口:

当然,插件模板生成的只是一些框架性的内容(而且只能生成插件后端server框架代码,具体业务功能还需要自己去实现。下面就以一个现有官方的插件用例email为例理解一下插件功能实现原理。

前端代码:

api是跟后端server交互部分,view部分是页面视图展示部分。

后端server代码,目录部分跟用插件模板功能生成的基本相同,也可以根据插件的具体情况增加相关的目录或文件。

现在前后端代码都有了,还有一步配置步骤,保证plugin能运行起来。路由初始化时时实现pluge的初始化,就是在initialize下的plugin做如下配置。

无鉴权的插件:不会走角色那一套,不会走jwt, casbin等,可以随意给插件增加中间件,或者自定义的东西。

鉴权插件:走jwt,casbin,可以拿到当前用户的一些信息跟角色用户挂钩做一些相关的操作。

上图中CreateEmailPlug接口中的传参是直接读取的框架的整体配置文件,这个地方需要做一下配置文件的隔离,也是优化点,插件配置文件单独存在,后面在编写的小插件pgtest中做了优化。

现在代码部分已经完成,plugin初始化逻辑调用如下图所示。

后端server收到前端web发送的请求后,逻辑流程为:

代码逻辑原理就是这些,回到项目中来,后台代码都有了,与用户交互的配置如下:

刷新页面在“插件系统”下可以看到“邮件插件测试”的子菜单:

打包插件功能:

可以查看email.zip的目录结构,我们自己打包也要遵循该打包结构:

安装插件功能:

点击上传zip包,可以看到web和server端pluge目录下都增加了相应的插件目录。

     

 

 

以自己写的一个简单的小插件pgtest为例讲述一下目前的插件方案:

该插件功能是将输入的个数值与插件配置文件中的阈值进行比较,若大于该阈值就会报错。

1、先看一下效果图,输入数值,然后点击“个数检测”。

2、web端目录结构以及文件,目前展示的只有api和view目录,可以根据插件功能增加功能目录。

2、server端目录结构以及文件

 

文章来自个人专栏
文章 | 订阅
0条评论
0 / 1000
请输入你的评论
0
0