func (u *UserApi) Login(c *gin.Context) { var req model.LoginRequest _ = c.ShouldBindJSON(&req) // 调用服务层验证用户名密码 user, token, err := service.UserServiceApp.Login(req) if err != nil { c.JSON(400, gin.H{"code": 400, "msg": err.Error()}) return } c.JSON(200, gin.H{"code": 0, "data": token, "msg": "登录成功"})}前端调用这部分接口也很规整,api 目录下统一管理所有接口,配合 Pinia 存储用户状态和 Token,登录流程清晰明了。
代码生成器的逻辑稍微复杂一些,但核心就是读取数据库表结构 → 解析字段类型 → 渲染前后端模板 → 输出完整代码文件。整个过程在本地运行,生成的代码可以直接复制到项目中用,也可以按需二次修改。
项目效果
新建一张业务表 + 生成 CRUD 代码:大概 1 到 2 分钟
配置菜单和 API 权限:3 到 5 分钟在界面里点选完成
从零到一跑起来一个带登录、权限、菜单的后台:半小时以内
说几个我比较喜欢的体验细节:
第一是权限控制的粒度。菜单、API、按钮三个维度分开配置,灵活度很高。比如可以做到"销售角色能看到订单列表但看不到导出按钮,运营角色能看到全部但只能导出 CSV 格式"这种精细控制。
第二是动态菜单的流畅度。菜单数据由后端返回,前端动态渲染。角色切换后菜单实时变化,不需要重新登录。
第三是代码生成的可编辑性。生成的代码不是黑盒子,就是普通的控制器 + 服务 + 前端页面文件,想改哪就改哪,没有框架锁定感。
项目源码
项目完全开源,托管在多个代码平台,可以根据自己的网络情况选择:
平台 | 地址 |
GitHub | https://github.com/flipped-aurora/gin-vue-admin |
GitCode | https://gitcode.com/flipped-aurora/gin-vue-admin |
Gitee | https://gitee.com/pixelmax/gin-vue-admin |
本地运行只需要三步:
# 1. 克隆代码git clone https://github.com/flipped-aurora/gin-vue-admin.git# 2. 启动后端(进入 server 目录)go mod tidy && go run main.go# 3. 启动前端(进入 web 目录)pnpm install && pnpm dev如果用 Docker,一条 docker-compose up -d 就能把 MySQL + Redis + 后端 + 前端全部跑起来,非常方便。
总结
项目整体印象是八个字:扎实、全面、克制、实用。
它没有追求大而全的"中台化"抽象,而是把后台开发中最频繁遇到的场景——登录、权限、菜单、CRUD、文件上传、配置管理——都老老实实地做了出来,而且做得足够好用。
AutoCode 的代码生成能力解决了效率问题,JWT + Casbin 的权限组合解决了安全问题,多数据库和多云存储的支持解决了企业场景的适配问题。而 AI 辅助开发的探索则为这个框架增加了面向未来的想象力。
如果正准备做一个后台管理系统,或者想找一个 Go + Vue 的全栈学习项目,值得花一两个晚上跑起来试一试。光是研究它的代码生成器和权限设计,就能学到不少东西。
关键词
作者:小码编匠
出处:gitee.com/smallcore/DotNetCore
声明:网络内容,仅供学习,尊重版权,侵权速删,歉意致谢!
方便大家交流、资源共享和共同成长
纯技术交流群、需要的小伙伴请扫码
有收获?不妨分享让更多人受益
关注「程序员开源栈」,共同提升技术实力
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!