Files
soul-yongping/开发文档/6、后端/后端架构.md
2026-02-09 15:09:29 +08:00

70 lines
3.4 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 + 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 是唯一对外后端,功能明确、路径与字段规范统一,便于多端复用与维护。