Skip to content

Go + Vue开发的管理系统脚手架, 前后端分离, 仅包含项目开发的必需部分, 基于角色的访问控制(RBAC), 分包合理, 精简易于扩展。 后端Go包含了gin、 gorm、 jwt和casbin等的使用, 前端Vue基于vue-element-admin开发

License

Notifications You must be signed in to change notification settings

sjqzhang/go-web-mini

This branch is 53 commits ahead of gnimli/go-web-mini:master.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

author
sjqzhang
Sep 22, 2024
6f60d97 · Sep 22, 2024

History

95 Commits
Sep 12, 2023
Sep 22, 2024
Sep 22, 2024
Aug 18, 2023
Sep 12, 2023
Sep 12, 2023
Sep 12, 2023
Aug 13, 2023
Sep 7, 2023
Sep 7, 2023
Sep 22, 2024
Jan 13, 2021
Aug 18, 2023
Sep 22, 2024
Sep 22, 2024
Feb 20, 2021
Feb 20, 2021
Sep 22, 2024
Sep 22, 2024
Sep 22, 2024

Repository files navigation

go-web-mini

Go + Vue开发的管理系统脚手架, 前后端分离, 仅包含项目开发的必需部分, 基于角色的访问控制(RBAC), 分包合理, 精简易于扩展。 后端Go包含了gin、 gorm、 jwt和casbin等的使用, 前端Vue基于vue-element-admin开发: https://github.com/gnimli/go-web-mini-ui.git

Go version Gin version Gorm version License

特性

  • Gin 一个类似于martini但拥有更好性能的API框架, 由于使用了httprouter, 速度提高了近40倍
  • MySQL 采用的是MySql数据库
  • Jwt 使用JWT轻量级认证, 并提供活跃用户Token刷新功能
  • Casbin Casbin是一个强大的、高效的开源访问控制框架,其权限管理机制支持多种访问控制模型
  • Gorm 采用Gorm 2.0版本开发, 包含一对多、多对多、事务等操作
  • Validator 使用validator v10做参数校验, 严密校验前端传入参数
  • Lumberjack 设置日志文件大小、保存数量、保存时间和压缩等
  • Viper Go应用程序的完整配置解决方案, 支持配置热更新
  • GoFunk 包含大量的Slice操作方法的工具包

中间件

  • AuthMiddleware 权限认证中间件 -- 处理登录、登出、无状态token校验
  • RateLimitMiddleware 基于令牌桶的限流中间件 -- 限制用户的请求次数
  • OperationLogMiddleware 操作日志中间件 -- 记录所有用户操作
  • CORSMiddleware -- 跨域中间件 -- 解决跨域问题
  • CasbinMiddleware 访问控制中间件 -- 基于Casbin RBAC, 精细控制接口访问

项目截图

登录 用户管理 角色管理 角色权限 菜单管理 API管理

项目结构概览

├─common # casbin mysql zap validator 等公共资源
├─config # viper读取配置
├─controller # controller层,响应路由请求的方法
├─dto # 返回给前端的数据结构
├─middleware # 中间件
├─model # 结构体模型
├─repository # 数据库操作
├─response # 常用返回封装,如Success、Fail
├─routes # 所有路由
├─util # 工具方法
└─vo # 接收前端请求的数据结构

前端Vue项目

go-web-mini-ui https://github.com/gnimli/go-web-mini-ui.git

swagger 文档生成

 swag init

客户端生成

docker run --rm -v $(pwd):/local swaggerapi/swagger-codegen-cli generate -i /local/docs/swagger.json -l go -o /local/client

TODO

  • 增加图片服务器
  • 增加promtail-loki-grafana日志监控系统
  • 增加swagger文档

MIT License

Copyright (c) 2021 gnimli

About

Go + Vue开发的管理系统脚手架, 前后端分离, 仅包含项目开发的必需部分, 基于角色的访问控制(RBAC), 分包合理, 精简易于扩展。 后端Go包含了gin、 gorm、 jwt和casbin等的使用, 前端Vue基于vue-element-admin开发

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Go 93.3%
  • Smarty 4.0%
  • Vue 2.5%
  • Other 0.2%