55 lines
2.1 KiB
Markdown
55 lines
2.1 KiB
Markdown
# 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。
|