Files
soul-yongping/技术文档.md

55 lines
2.1 KiB
Markdown
Raw Normal View History

# 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**SSEGin 间接)
- **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。