更新开发文档,强调接口路径必须按使用方区分,禁止通用路径混用。新增小程序分享功能,统一使用推荐码,确保用户体验一致性。
This commit is contained in:
@@ -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 初始化)。
|
||||
|
||||
@@ -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. 目录与包约定
|
||||
|
||||
@@ -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 下补齐。
|
||||
|
||||
## 三、执行约定
|
||||
|
||||
Reference in New Issue
Block a user