# gozrd-admin-api **Repository Path**: cucy/gozrd-admin-api ## Basic Information - **Project Name**: gozrd-admin-api - **Description**: 一个最最最后的后台通用版本 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-04-01 - **Last Updated**: 2025-06-22 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Gozrd Admin API 一个基于Golang的后台管理系统API服务,提供完整的权限管理、用户管理、角色管理等功能。 ## 项目简介 Gozrd Admin API是一套完整的后台管理系统API服务,基于Gin框架和GORM开发,提供标准RESTful API接口,支持用户认证、权限管理、数据访问等核心功能。项目采用清晰的分层架构设计,便于扩展和维护。 ## 技术栈 - **框架**: Gin - **ORM**: GORM - **数据库**: MySQL - **缓存**: Redis - **认证**: JWT - **文档**: Swagger - **日志**: zap + lumberjack ## 项目结构 ``` gozrd-admin-api/ ├── cmd/ # 入口文件目录 │ └── main.go # 主程序入口 ├── config/ # 配置文件目录 │ └── config.yaml # 配置文件 ├── internal/ # 内部代码目录 │ ├── api/ # API控制器层 │ ├── entity/ # 数据实体层 │ │ ├── dto/ # 数据传输对象 │ │ ├── model/ # 数据库模型 │ │ ├── query/ # 查询对象 │ │ └── vo/ # 视图对象 │ ├── middleware/ # 中间件 │ ├── repository/ # 数据访问层 │ └── service/ # 业务逻辑层 ├── pkg/ # 公共包 │ ├── auth/ # 认证相关 │ ├── config/ # 配置处理 │ ├── database/ # 数据库连接 │ ├── logger/ # 日志处理 │ ├── middleware/ # 通用中间件 │ ├── redis/ # Redis连接 │ ├── redis-captcha-store/ # Redis验证码存储 │ ├── response/ # 响应处理 │ ├── traceid/ # 链路追踪 │ └── util/ # 工具函数 ├── script/ # 脚本文件目录 │ ├── database.sql # 数据库脚本 │ └── mergedir.go # 目录合并工具 ├── logs/ # 日志目录 ├── docs/ # 文档目录 ├── go.mod # Go模块文件 └── go.sum # Go依赖锁定文件 ``` ## 核心功能 - **用户认证**: 登录、登出、密码管理 - **权限管理**: 基于RBAC的权限控制 - **用户管理**: 管理员账号的增删改查 - **角色管理**: 角色的增删改查及权限分配 - **菜单管理**: 系统菜单的增删改查 - **部门管理**: 组织架构的增删改查 - **岗位管理**: 职位岗位的增删改查 - **日志管理**: 操作日志和登录日志记录与查询 ## 快速开始 ### 环境要求 - Go 1.24+ - MySQL 5.7+ - Redis 6.0+ ### 安装步骤 1. 克隆项目 ```bash git clone https://github.com/yourusername/gozrd-admin-api.git cd gozrd-admin-api ``` 2. 安装依赖 ```bash go mod download ``` 3. 配置数据库 - 创建MySQL数据库 - 执行`script/database.sql`初始化表结构与基础数据 - 修改`config/config.yaml`中的数据库连接配置 4. 配置Redis - 确保Redis服务运行中 - 修改`config/config.yaml`中的Redis连接配置 5. 运行项目 ```bash go run cmd/main.go ``` 6. 访问接口文档 ``` http://localhost:8080/swagger/index.html ``` ### API文档生成 使用swag生成Swagger文档: ```bash swag init -g cmd/main.go ``` ## 接口设计 项目采用RESTful风格的API设计,主要接口包括: - 认证相关: `/api/v1/auth/*` - 管理员相关: `/api/v1/admin/*` - 角色相关: `/api/v1/role/*` - 菜单相关: `/api/v1/menu/*` - 部门相关: `/api/v1/dept/*` - 岗位相关: `/api/v1/post/*` - 日志相关: `/api/v1/loginInfo/*`, `/api/v1/operationLog/*` 详细API文档请访问启动后的Swagger页面。 ## 测试 项目包含单元测试,可以通过以下命令运行测试: ```bash go test ./... ``` ## 部署 ### 使用Docker部署 1. 构建Docker镜像 ```bash docker build -t gozrd-admin-api . ``` 2. 运行容器 ```bash docker run -p 8080:8080 -v $(pwd)/config:/app/config -v $(pwd)/logs:/app/logs gozrd-admin-api ``` ### 使用systemd部署(Linux) 1. 创建服务文件 ```bash sudo nano /etc/systemd/system/gozrd-admin-api.service ``` 2. 添加以下内容 ``` [Unit] Description=Gozrd Admin API Service After=network.target [Service] User=youruser WorkingDirectory=/path/to/gozrd-admin-api ExecStart=/path/to/gozrd-admin-api/gozrd-admin-api Restart=on-failure RestartSec=5 [Install] WantedBy=multi-user.target ``` 3. 启动服务 ```bash sudo systemctl enable gozrd-admin-api sudo systemctl start gozrd-admin-api ``` ## 开发指南 ### 代码规范 - 遵循Go语言标准代码风格 - 使用依赖注入模式 - 保持清晰的分层结构 ### 分支管理 - `main`: 主分支,稳定版本 - `develop`: 开发分支 - 功能分支: `feature/feature-name` - 修复分支: `bugfix/bug-name` ### 添加新功能 1. 在model目录添加模型 2. 在repository目录添加数据访问层代码 3. 在service目录添加业务逻辑 4. 在api目录添加API控制器 5. 在router.go中注册路由 ## 待办事项 - [ ] 实现登出接口 - [ ] 添加刷新Token接口 - [ ] 优化API命名,更符合RESTful规范 - [ ] 完善文件管理功能 - [ ] 增加系统配置管理模块 ## 贡献指南 欢迎提交Pull Request或Issue。 ## 许可证 [Apache License 2.0](LICENSE)