# go_pure_admin_api **Repository Path**: tang_q/go_pure_admin_api ## Basic Information - **Project Name**: go_pure_admin_api - **Description**: 用于适配pureAdmin的后端go代码 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2025-07-28 - **Last Updated**: 2026-02-04 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # go_pure_admin_api 基于 Go 语言和 Gin 框架开发的后台管理系统 API 服务,提供用户管理、角色权限控制、菜单管理等完整功能模块。 ## 功能特性 - 用户认证:JWT Token 认证机制 - 权限控制:基于 Casbin 的 RBAC 权限模型 - 用户管理:用户注册、登录、信息维护、头像上传等 - 角色管理:角色创建、编辑、权限分配 - 部门管理:组织架构管理 - 菜单管理:动态菜单配置 - 日志记录:使用 zap 实现高性能日志记录 - 缓存支持:Redis 缓存支持 ## 技术栈 - [Go 1.24.1](https://golang.google.cn/) - [Gin v1.10.1](https://github.com/gin-gonic/gin) - Web 框架 - [GORM v1.30.1](https://gorm.io/) - ORM 库 - [Casbin v2.110.0](https://casbin.org/) - 权限控制框架 - [Viper v1.20.1](https://github.com/spf13/viper) - 配置管理 - [Zap v1.27.0](https://github.com/uber-go/zap) - 日志库 - [JWT v5.2.3](https://github.com/golang-jwt/jwt) - JWT 实现 - [Redis Go v9.11.0](https://github.com/go-redis/redis) - Redis 客户端 - MySQL - 数据库 ## 项目结构 ``` . ├── cmd # 程序入口 ├── config # 配置文件 ├── controllers # 控制器层 ├── dto # 数据传输对象 ├── global # 全局变量 ├── inits # 初始化模块 ├── middleware # 中间件 ├── models # 数据模型 ├── router # 路由配置 ├── utils # 工具函数 ├── img # 图片资源(头像等) └── main.go # 主程序入口 ``` ## 环境要求 - Go 1.24.1 或更高版本 - MySQL 5.7 或更高版本 - Redis 6.0 或更高版本 ## 安装与运行 1. 克隆项目到本地: ```bash git clone https://gitee.com/tang_q/go_pure_admin_api.git ``` 2. 进入项目目录: ```bash cd go_pure_admin_api ``` 3. 安装依赖: ```bash go mod download ``` 4. 配置数据库和 Redis: 修改 [config/conf.yml](config/conf.yml) 文件中的配置项: ```yaml mysql: dsn: root:password@tcp(127.0.0.1:3306)/pure-admin?charset=utf8mb4&parseTime=True&loc=Local redis: addr: 127.0.0.1:6379 ``` 5. 运行项目: ```bash go run .\main.go ``` ## API 文档 项目集成了 Swagger API 文档,启动服务后可以通过以下地址访问: ``` http://localhost:6888/swagger/index.html ``` ## 主要接口 ### 用户模块 - `POST /public/user/login` - 用户登录 - `GET /getAsyncRoutes` - 获取用户路由菜单 - `POST /refreshToken` - 刷新访问令牌 - `GET /public/user/getUserInfo` - 获取当前登录用户信息 - `POST /user/createUser` - 创建用户 - `POST /user/updateUser` - 更新用户信息 - `POST /user/deleteUser` - 删除用户 - `POST /user/userList` - 获取用户列表(分页) - `GET /user/roleList` - 获取所有角色列表 - `POST /user/updatePassword` - 更新用户密码 - `POST /user/updateUserRole` - 更新用户角色 - `POST /user/batchDeleteUser` - 批量删除用户 - `POST /user/uploadAvatar` - 上传头像 - `GET /public/user/getUserAvatar/{filename}` - 获取用户头像 - `POST /public/user/updateUserInfo` - 更新当前登录用户信息 - `POST /public/user/updateUserPassword` - 更新当前登录用户密码 ### 角色模块 - `POST /role/roleList` - 获取角色列表 - `POST /role/role-menu` - 获取角色菜单 - `POST /role/role-menu-ids` - 获取角色菜单ID - `POST /role/updateRole` - 更新角色 - `POST /role/createRole` - 创建角色 - `POST /role/updateRoleMenu` - 更新角色菜单 - `POST /role/deleteRole` - 删除角色 ### 部门模块 - `POST /dept/deptList` - 获取部门列表 - `POST /dept/createDept` - 创建部门 - `POST /dept/updateDept` - 更新部门信息 - `POST /dept/deleteDept` - 删除部门 ### 菜单模块 - `POST /menu/menuList` - 获取菜单列表 - `POST /menu/createMenu` - 创建菜单 - `POST /menu/updateMenu` - 更新菜单 - `POST /menu/deleteMenu` - 删除菜单 ## 配置说明 配置文件位于 [config/conf.yml](config/conf.yml),主要配置项包括: ```yaml server: port: 6888 # 服务端口 mysql: dsn: root:password@tcp(127.0.0.1:3306)/pure-admin?charset=utf8mb4&parseTime=True&loc=Local # MySQL 连接字符串 maxIdleConn: 10 # 最多空闲连接数 maxOpenConn: 10 # 最多打开连接数 redis: addr: 127.0.0.1:6379 # Redis 地址 jwt: tokenExpire: "1h" # token有效时长 refreshExpire: "2h" # refreshToken有效时长 key: secretkey # 签名使用的Key log: MaxSize: 1 # 日志文件最大的尺寸(M) MaxBackups: 10 # 保留旧文件的最大个数 MaxAge: 90 # 保留旧文件的最大天数 ``` ## 安全性 - 使用 JWT 进行身份验证 - 密码使用加密存储 - 基于 Casbin 的 RBAC 权限控制 - 登录失败次数限制(防止暴力破解) - CORS 跨域支持 ## 许可证 [MIT](LICENSE)