Skip to content

shuyoutech/ShuYou-Go

Repository files navigation

ShuYou-Go

数游科技 Go 版本后台管理系统

项目结构

ShuYou-Go/
├── cmd/                    # 应用程序入口
│   └── server/
│       └── main.go        # 主程序入口
├── internal/              # 私有应用代码
│   ├── api/              # API 路由和处理器
│   │   ├── v1/           # API 版本1
│   │   │   ├── handler/  # HTTP 处理器
│   │   │   └── router.go # 路由定义
│   │   └── middleware/   # 中间件
│   ├── service/          # 业务逻辑层
│   ├── repository/       # 数据访问层
│   ├── model/           # 数据模型
│   ├── config/          # 配置管理
│   ├── utils/           # 工具函数
│   └── pkg/             # 可复用的内部包
├── pkg/                  # 可被外部应用使用的库代码
│   ├── logger/          # 日志包
│   ├── validator/       # 验证器
│   └── response/        # 响应封装
├── configs/             # 配置文件
│   ├── config.yaml      # 主配置文件
│   └── config.dev.yaml  # 开发环境配置
├── migrations/          # 数据库迁移文件
├── scripts/            # 脚本文件
├── docs/               # 文档
├── web/                # 前端静态文件(可选)
├── tests/              # 测试文件
└── logs/               # 日志文件

技术栈

  • Web 框架: Gin v1.10.1
  • ORM: GORM v1.25.12
  • 配置管理: Viper v1.19.1
  • 日志: Zap v1.27.0
  • JWT 认证: golang-jwt/jwt v5.2.1
  • 参数验证: go-playground/validator v10.22.1
  • 密码加密: golang.org/x/crypto v0.28.0
  • 日志轮转: lumberjack v2.2.1

快速开始

1. 安装依赖

go mod download
go mod tidy

2. 配置数据库

编辑 configs/config.yaml 文件,配置数据库连接信息:

database:
  driver: "mysql"
  host: "127.0.0.1"
  port: 3306
  user: "root"
  password: "your_password"
  dbname: "shuyou_db"

3. 运行项目

# 使用 Makefile
make run

# 或直接运行
go run cmd/server/main.go

4. 数据库迁移

make migrate

5. 构建项目

make build

可用命令

  • make run - 运行项目
  • make build - 构建项目
  • make test - 运行测试
  • make clean - 清理构建文件
  • make deps - 安装依赖
  • make fmt - 格式化代码

API 接口

公开接口(无需认证)

  • POST /api/v1/users/register - 用户注册
  • POST /api/v1/users/login - 用户登录

需要认证的接口

  • GET /api/v1/users/profile - 获取用户信息
  • PUT /api/v1/users/profile - 更新用户信息

项目特性

  • ✅ 分层架构(Handler -> Service -> Repository)
  • ✅ JWT 认证中间件
  • ✅ 日志记录(文件 + 控制台)
  • ✅ 配置管理(支持多环境)
  • ✅ 数据库连接池管理
  • ✅ 优雅关闭服务器
  • ✅ CORS 跨域支持
  • ✅ 统一响应格式
  • ✅ 参数验证

开发规范

  1. 代码分层

    • handler: 处理 HTTP 请求和响应
    • service: 业务逻辑处理
    • repository: 数据访问层
    • model: 数据模型定义
  2. 错误处理:使用统一的响应格式返回错误

  3. 日志记录:使用 pkg/logger 包记录日志

  4. 配置管理:所有配置项都在 configs/config.yaml

许可证

LICENSE

About

数游科技 Go版本平台

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published