# soul-api Go 技术栈 ## 语言与运行时 - **Go 1.25** ## Web 框架与 HTTP - **Gin**(`github.com/gin-gonic/gin`):HTTP 路由与请求处理 - **gin-contrib/cors**:跨域 - **unrolled/secure**:安全头(HTTPS 重定向、HSTS 等,在 `middleware.Secure()` 中使用) ## 数据层 - **GORM**(`gorm.io/gorm`):ORM - **GORM MySQL 驱动**(`gorm.io/driver/mysql`):连接 MySQL - **go-sql-driver/mysql**:底层 MySQL 驱动(GORM 间接依赖) ## 微信生态 - **PowerWeChat**(`github.com/ArtisanCloud/PowerWeChat/v3`):微信开放能力(小程序、支付、商家转账等) - **PowerLibs**(`github.com/ArtisanCloud/PowerLibs/v3`):PowerWeChat 依赖 ## 配置与环境 - **godotenv**(`github.com/joho/godotenv`):从 `.env` 加载环境变量 - 业务配置集中在 `internal/config`,通过 `config.Load()` 读取 ## 鉴权与安全 - **golang-jwt/jwt/v5**:管理端 JWT 签发与校验(`internal/auth/adminjwt.go`) - 管理端路由使用 `middleware.AdminAuth()` 做 JWT 校验 ## 工具与间接依赖 - **golang.org/x/time**:时间/限流相关(如 `rate`) - **gin-contrib/sse**:SSE(Gin 间接) - **bytedance/sonic**:JSON 编解码(Gin 默认) - **go-playground/validator**:请求体校验(Gin 的 `ShouldBindJSON` 等) - **redis/go-redis**:仅在依赖图中出现(PowerWeChat 等间接引入),项目代码中未直接使用 Redis ## 项目结构(技术栈视角) | 层级 | 技术/约定 | |----------|------------| | 入口 | `cmd/server/main.go`,标准库 `net/http` + Gin | | 路由 | `internal/router`,Gin Group(`/api`、`/admin`、`/miniprogram` 等) | | 中间件 | CORS、Secure、限流(`middleware.RateLimiter`)、管理端 JWT | | 业务逻辑 | `internal/handler`,GORM + `internal/model` | | 数据访问 | `internal/database` 提供 `DB() *gorm.DB`,统一用 GORM | | 微信相关 | `internal/wechat`(小程序、支付、转账等封装) | | 开发工具 | `.air.toml` 热重载、Makefile | 整体上是一个 **Gin + GORM + MySQL + 微信 PowerWeChat + JWT 管理端鉴权** 的 Go 后端,面向小程序与管理端 API。