【Github】项目名:snowlyg/iris – admin:Web admin for go framework[gin/iris]
一、项目简介
这是一个为go框架(gin/iris)构建的Web管理项目。项目由多个插件构成,每个插件具备不同功能,例如[viper_server]插件用于配置初始化与本地配置文件生成,[zap_server]插件用于日志记录等。
二、项目构成与功能
-
在配置初始化方面,[viper_server]插件使用github.com/spf13/viper第三方包,实现配置初始化并生成本地配置文件,需要实现func getViperConfig() viper_server.ViperConfig方法。
-
日志记录上,[zap_server]插件借助go.uber.org/zap第三方包,通过全局变量zap_server.ZAPLOG记录对应级别的日志。
-
数据操作部分,[database]数据插件(目前仅支持mysql)利用gorm.io/gorm第三方包,通过单列database.Instance()操作数据。
-
权限控制管理由[casbin]插件负责,使用casbin第三方包实现,通过casbin.Instance()使用中间件,达成接口权限认证。
-
[cache]缓存驱动插件采用github.com/go – redis/redis第三方包,通过单列cache.Instance()操作数据。
-
[operation]系统操作日志插件通过index.Use(operation.OperationRecord())使用中间件,实现接口自动生成操作日志。
-
[cron_server]任务插件使用robfig/cron第三方包,通过单列cron_server.CronInstance()操作数据。
-
对于web框架,有web_iris(Go – Iris web框架插件)和web_gin(Go – gin web框架插件),需实现type WebFunc interface{}接口。
-
[mongodb]使用mongodb第三方包实现数据初始化,简单初始化可使用原生方法AutoMigrate()自动迁移初始化数据表,也可使用自定义迁移工具gormigrate第三方依赖包实现数据的迁移控制。
三、项目启动与使用
首次启动项目后,配置文件会自动生成到config目录下,同时生成一个rbac_model.conf文件到项目根目录(用于casbin权鉴的规则)。可以使用iris – admin – rbac项目快速集成权鉴功能,还可使用AddModule()增加其他admin模块。在前端配合方面,编译前端页面默认dist目录,可修改配置项web – path。默认内置了静态文件访问路径,静态文件上传到/static/upload目录,可修改配置项static – path。
四、项目测试
接口单元测试和接口文档测试前,需要设置mysqlPwd、mysqlAddr系统环境变量。测试使用依赖库helper/tests(基于httpexpect/v2的简单封装),测试时建议采用docker部署mysql,测试用例包含数据库创建摧毁、数据表新建及表数据填充等操作。
五、项目总结
这个snowlyg/iris – admin项目功能丰富,涵盖了从配置管理、数据操作、权限控制到日志记录等多方面的功能。在与前端的配合以及测试方面也有相应的设计。欢迎各位粉丝在下方留言,一起讨论这个项目的更多细节或者分享使用心得。