Files
soul-yongping/技术文档.md

55 lines
2.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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。