# 学习二次开发 **Repository Path**: zhoull0801/learning-secondary-development ## Basic Information - **Project Name**: 学习二次开发 - **Description**: 基于go-web-like框架,自己学习研究 - **Primary Language**: Go - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-12-27 - **Last Updated**: 2025-12-27 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Go Web Mini Like 一个基于 Go 语言的轻量级 Web 开发框架,适用于二次开发和快速构建后台管理系统。 ## 项目特点 - 基于 Gin 框架,性能优秀 - 集成 JWT 权限认证 - 使用 Casbin 进行细粒度权限控制 - 提供完善的用户、角色、菜单、API 接口等管理功能 - 支持操作日志、登录日志记录 - 包含数据验证、密码加密、IP 定位等实用工具 ## 技术栈 - Go 1.16+ - Gin 框架 - GORM - JWT - Casbin - MySQL - Swagger 文档 ## 目录结构 ``` ├── common # 公共初始化(数据库、日志、验证器等) ├── config # 配置文件 ├── controller # 控制器层(用户、角色、菜单等管理) ├── docs # API 文档 ├── dto # 数据传输对象 ├── model # 数据库模型 ├── repository # 数据访问层 ├── middleware # 中间件(权限、CORS、日志等) ├── response # 响应封装 ├── routes # 路由配置 ├── util # 工具类(加密、IP定位、JSON处理等) ├── vo # 请求参数验证对象 ``` ## 快速开始 1. 克隆项目: ```bash git clone https://gitee.com/zhoull0801/learning-secondary-development.git ``` 2. 安装依赖: ```bash go mod tidy ``` 3. 配置数据库: 修改 `config.yaml` 文件中的 MySQL 配置 4. 初始化数据库: 执行 `common/init_mysql_data.go` 中的初始化脚本 5. 运行项目: ```bash go run main.go ``` ## 接口文档 访问 `/swagger/index.html` 查看 API 文档 ## 功能模块 - 用户管理:用户注册、登录、信息管理、密码修改 - 角色管理:角色创建、权限分配(菜单、API) - 菜单管理:菜单树结构管理 - API 接口管理:接口权限控制 - 日志管理:操作日志、登录日志记录 - 权限控制:基于 Casbin 的 RBAC 模型 ## 中间件 - JWT 认证:基于 GinJWTMiddleware 实现的 Token 认证 - Casbin 权限控制:实现接口级别的权限校验 - 跨域处理:CORS 中间件 - 请求频率限制:基于令牌桶算法的限流中间件 - 操作日志:记录每次 API 调用详情 ## 工具类 - 密码加密:使用 bcrypt 算法 - 数据转换:结构体与 JSON 互转 - IP 定位:获取客户端 IP 地理位置 - RSA 加密:支持非对称加密解密 ## 配置说明 配置文件 `config.yaml` 包含以下主要配置: ```yaml system: port: 8080 log_level: info mysql: host: 127.0.0.1 port: 3306 user: root password: root database: go_web_mini_like casbin: enable: true jwt: secret_key: your_secret_key expires: 72 rate_limit: enable: true capacity: 100 fill_interval: 1 ``` ## 日志 日志文件存储在 `logs` 目录下,包含 info 和 error 两个级别的日志文件 ## 二次开发建议 1. 新增功能模块可参考现有结构: - 在 `model` 目录创建数据模型 - 在 `repository` 目录实现数据访问 - 在 `controller` 目录编写业务逻辑 - 在 `routes` 目录注册路由 2. 修改权限配置: - 修改 `rbac_model.conf` 调整权限模型 - 在 `middleware/CasbinMiddleware.go` 中调整权限校验逻辑 3. 扩展中间件: - 在 `middleware` 目录添加新的中间件 - 在 `routes/routes.go` 注册中间件 ## 贡献指南 1. Fork 项目 2. 创建新分支 3. 提交代码改动 4. 创建 Pull Request ## 许可证 本项目采用 MIT 许可证,详细请见 LICENSE 文件。