2.1 KiB
2.1 KiB
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。