Files
soul-yongping/开发文档/6、后端/后端架构.md

70 lines
3.4 KiB
Markdown
Raw Normal View History

2026-02-09 15:09:29 +08:00
# 后端架构与业务逻辑
**我是卡若。**
当前后端为独立项目 **soul-api**Go + Gin + GORM提供全部 `/api/*` 接口,与 soul-admin、小程序对接。
## 1. 技术栈(当前)
| 项目 | 技术 | 说明 |
|------|------|------|
| **soul-api** | Go 1.25 + Gin + GORM + MySQL | 独立 API 服务,路径与现网一致,响应 camelCase |
## 2. soul-api 目录结构
\`\`\`
soul-api/
├── cmd/
│ └── server/
│ └── main.go # 入口
├── internal/
│ ├── config/ # 配置(环境变量)
│ ├── database/ # 数据库连接 (GORM)
│ ├── handler/ # API 处理函数(按业务拆分)
│ │ ├── admin.go, admin_chapters.go, admin_withdrawals.go ...
│ │ ├── auth.go, user.go, book.go, orders.go
│ │ ├── withdraw.go, referral.go, distribution.go
│ │ ├── config.go, db.go, miniprogram.go ...
│ ├── middleware/ # 中间件CORS、鉴权、限流、安全头
│ ├── model/ # 数据模型GORM + json 标签 camelCase
│ │ ├── user.go, order.go, chapter.go, withdrawal.go ...
│ └── router/
│ └── router.go # 路由注册,路径与现网 /api/* 一致
├── .env, .env.example
├── go.mod, go.sum
└── Makefile
\`\`\`
## 3. 核心业务模块(在 handler 中实现)
- **鉴权**`/api/admin` 登录与鉴权,管理端 Cookie/Token小程序走 `/api/miniprogram/login` 等。
- **用户**`/api/user/profile``/api/user/update``/api/user/track``/api/user/purchase-status` 等。
- **书籍/章节**`/api/book/*`(目录、章节、搜索、统计)。
- **订单与支付**`/api/orders``/api/miniprogram/pay`、支付回调等。
- **分销与提现**`/api/referral/*``/api/distribution/*``/api/withdraw/*``/api/admin/withdrawals`
- **配置与内容**`/api/config``/api/content``/api/db/config``/api/db/book` 等。
- **管理端**`/api/admin/*`(章节、分销概览、提现审核等)、`/api/db/*`(用户、配置、初始化等)。
## 4. 接口与字段规范
- **路径**:与现网完全一致(如 `GET /api/user/profile``PUT /api/admin/withdrawals`),便于前端只改 baseUrl 切换后端。
- **请求/响应字段**:一律**小写开头驼峰camelCase**。
- Go 结构体:`json:"userId"``json:"createdAt"``json:"referralCode"`
- 数据库列名:保持 snake_case`user_id``created_at`),仅在 GORM 与 SQL 中使用,不暴露给前端。
- **统一响应**:成功可返回 `gin.H{"success": true, "data": ...}`;失败 `gin.H{"success": false, "error": "..."}`
## 5. 数据库与配置
- **数据库**MySQLGORM 连接;表结构可与原 Next/Prisma 保持一致,便于迁移。
- **配置**:环境变量(.env`DB_*``PORT``CORS_ORIGINS``JWT_SECRET` 等;敏感信息不提交仓库。
## 6. 扩展性
- **鉴权**:管理端已用 `middleware.AdminAuth()` 保护 `/api/admin/*``/api/db/*`
- **CORS**:已配置 AllowOrigins/AllowCredentials支持 soul-admin 与小程序跨域。
- **限流**:可按需在 middleware 中增加 rate limit。
---
**卡若说:**
soul-api 是唯一对外后端,功能明确、路径与字段规范统一,便于多端复用与维护。