更新开发文档,强调接口路径必须按使用方区分,禁止通用路径混用。新增小程序分享功能,统一使用推荐码,确保用户体验一致性。

This commit is contained in:
Alex-larget
2026-02-25 11:47:36 +08:00
parent 8e4d61e22b
commit 52c5a8abab
145 changed files with 20844 additions and 30 deletions

View File

@@ -10,10 +10,18 @@ alwaysApply: false
## 路由按使用方归类(强制)
**新增接口时,必须先判断使用方(小程序 / 管理端 / 两端共用),再决定挂到哪个 Group。禁止写「通用路径」让两端混用。**
- **仅管理端用的接口**:只挂在 `admin` 或 `db` 组(`/api/admin/*`、`/api/db/*`**不得**在 `miniprogram` 组注册。
- **仅小程序用的接口**:只挂在 `miniprogram` 组(`/api/miniprogram/*`**不得**仅在 admin/db 下注册而让小程序去调 `/api/xxx`。
- **两端共用的接口**:在 `api` 下挂一份,并在 `miniprogram` 组内用同一 handler 再挂一遍,保证小程序统一走 `/api/miniprogram/xxx`handler 注释中标明使用方(如「小程序-提现记录」「管理端-提现列表」)。
**重要**:即使业务逻辑完全相同,**也必须按使用方做路径区分**。例如 VIP 相关接口,若小程序和管理端都要用,应提供:
- 管理端:`/api/admin/vip/*` 或 `/api/db/vip/*`
- 小程序:`/api/miniprogram/vip/*`(可复用同一 handler但路径必须显式挂到 miniprogram 组)
不得仅提供 `/api/vip/*` 让两端共用,违反项目边界约定。
## 禁止行为
- 禁止在 `miniprogram` 组挂仅管理端调用的接口如后台审核、DB 初始化)。

View File

@@ -61,6 +61,12 @@ alwaysApply: false
- **两端共用的接口**:在 `router.go` 里两处都注册同一 handler先写在 `api` 的对应区块(如「推荐」「用户」),再在 `// ----- 小程序组 -----` 里用 `miniprogram.GET/POST(... path, handler.XXX)` 挂一遍,保证小程序统一走 `/api/miniprogram/xxx`。
- handler 注释和路由注释中标明使用方,例如:`// GET /api/miniprogram/withdraw/records 小程序-提现记录`、`// GET /api/admin/withdrawals 管理端-提现列表`。
**工程师必守:即使业务逻辑完全相同,也必须按使用方做路径区分。** 例如 VIP 相关接口status、profile、members 等),若小程序和管理端都要用:
- 管理端:`/api/admin/vip/*` 或 `/api/db/vip/*`
- 小程序:`/api/miniprogram/vip/*`(可复用同一 handler但路径必须显式挂到 miniprogram 组)
禁止仅提供 `/api/vip/*` 等「通用路径」让两端混用,违反项目边界。
**管理端列表接口返回约定**:列表类接口(如 withdrawals、orders、users的响应应包含 soul-admin 通用展示所需字段:`user_name` 或 `userNickname`、`userAvatar`、`status`、`amount`(金额用数字)。提现状态:数据库存值 `pending`/`processing`/`success`/`failed`,前端展示可映射 `success`→`completed`、`failed`→`rejected`。
## 5. 目录与包约定

View File

@@ -15,7 +15,7 @@ alwaysApply: false
| **前端(小程序或管理端)** 新增/改了**字段**或**接口入参/出参** | soul-api 对应接口的 request/response、model 是否已改?数据库表是否有对应列(无则加迁移/字段)? |
| **小程序** 新增或改了一个**功能**(页面、能力、配置项) | soul-api 是否已有或需新增接口(挂到 `/api/miniprogram/...`**管理端**是否需要对应的**配置、审核、统计、列表** |
| **管理端** 新增或改了**列表/表单/配置项** | soul-api 的 admin/db 接口是否已提供对应数据或写接口?字段名与类型是否与前端一致? |
| **soul-api** 新增/改了**接口**路径、请求体、响应体、model | 小程序或管理端是否有**调用处**?类型/字段是否已同步更新?若改了表结构,迁移是否已加? |
| **soul-api** 新增/改了**接口**路径、请求体、响应体、model | 小程序或管理端是否有**调用处**?类型/字段是否已同步更新?若改了表结构,迁移是否已加?**路径是否按使用方区分**(小程序用 `/api/miniprogram/*`,管理端用 `/api/admin/*` 或 `/api/db/*`,禁止通用路径混用)? |
| **soul-api** 新增/改了**表或字段** | 相关 handler、model 是否已改?是否有接口暴露给小程序/管理端?若有,前端是否已对接? |
## 二、按「业务功能」想三端
@@ -23,7 +23,7 @@ alwaysApply: false
以**功能/领域**为单位(如:提现、推荐、章节权限、找伙伴、配置项),问一句:
- **小程序**:用户侧是否已实现/已更新?
- **soul-api**接口是否在正确路由组miniprogram / admin / db、请求响应是否一致
- **soul-api**接口是否在正确路由组miniprogram / admin / db、请求响应是否一致若两端共用,是否显式挂到 miniprogram 组(`/api/miniprogram/xxx`),禁止仅提供 `/api/xxx` 混用?
- **管理端**:该功能是否需要**配置、审核、统计、列表**?有则需在 soul-admin 与 soul-api 的 admin/db 下补齐。
## 三、执行约定