82 lines
3.9 KiB
Markdown
82 lines
3.9 KiB
Markdown
# Requirements Document
|
||
|
||
## Introduction
|
||
|
||
本需求文档描述前端 API 接口调用重构工作。目标是将分散在页面和组件中的接口调用统一收敛到 `common/server/` 模块,实现接口集中管理,并在改造过程中记录所有 API 地址,用于核对 C# 后端迁移完整性。
|
||
|
||
## Glossary
|
||
|
||
- **Server_Module**: `honey_box/common/server/` 目录下的 API 接口封装模块
|
||
- **RequestManager**: 现有的网络请求工具类 (`honey_box/common/request.js`)
|
||
- **Page**: `honey_box/pages/` 目录下的页面文件
|
||
- **Component**: `honey_box/components/` 目录下的组件文件
|
||
- **API_Registry**: 接口清单文档,记录所有前端使用的 API 地址及迁移状态
|
||
|
||
## Requirements
|
||
|
||
### Requirement 1: 修改请求格式
|
||
|
||
**User Story:** As a 开发者, I want POST 请求使用 JSON 格式, so that 与 C# 后端兼容。
|
||
|
||
#### Acceptance Criteria
|
||
|
||
1. WHEN 发送 POST 请求 THEN RequestManager SHALL 使用 `application/json` 作为 Content-Type
|
||
2. WHEN 发送请求 THEN RequestManager SHALL 保持现有签名机制不变
|
||
3. WHEN 请求完成 THEN RequestManager SHALL 返回与 PHP 版本一致的响应格式
|
||
|
||
### Requirement 2: 创建 Server 模块
|
||
|
||
**User Story:** As a 开发者, I want 按业务域划分 API 模块, so that 接口集中管理便于维护。
|
||
|
||
#### Acceptance Criteria
|
||
|
||
1. THE Server_Module SHALL 按业务域划分为独立文件(auth、user、goods、order、warehouse、coupon、welfare、collection、address、config、rank、invitation、redeem、pay)
|
||
2. WHEN 定义接口函数 THEN Server_Module SHALL 使用语义化的函数名(如 `getUserInfo`、`getGoodsList`)
|
||
3. WHEN 接口调用失败 THEN Server_Module SHALL 统一处理错误并返回标准格式
|
||
4. THE Server_Module SHALL 不使用 index.js 统一导出,各模块独立导入
|
||
|
||
### Requirement 3: 重构页面接口调用
|
||
|
||
**User Story:** As a 开发者, I want 页面通过 Server 模块调用接口, so that 接口路径不再硬编码在页面中。
|
||
|
||
#### Acceptance Criteria
|
||
|
||
1. WHEN 页面需要调用接口 THEN Page SHALL 从对应 Server_Module 导入函数
|
||
2. WHEN 页面调用接口 THEN Page SHALL 使用 `await` 方式调用导入的函数
|
||
3. THE Page SHALL 不再直接使用 `this.req()`、`RequestManager.post()` 等方式硬编码 URL
|
||
4. WHEN 重构页面 THEN 开发者 SHALL 记录该页面使用的所有 API 地址到 API_Registry
|
||
|
||
### Requirement 4: 重构组件接口调用
|
||
|
||
**User Story:** As a 开发者, I want 组件通过 Server 模块调用接口, so that 组件中的接口也能集中管理。
|
||
|
||
#### Acceptance Criteria
|
||
|
||
1. WHEN 组件需要调用接口 THEN Component SHALL 从对应 Server_Module 导入函数
|
||
2. WHEN 组件调用接口 THEN Component SHALL 使用 `await` 方式调用导入的函数
|
||
3. THE Component SHALL 不再直接使用 `this.req()`、`RequestManager.post()` 等方式硬编码 URL
|
||
4. WHEN 重构组件 THEN 开发者 SHALL 记录该组件使用的所有 API 地址到 API_Registry
|
||
|
||
### Requirement 5: 生成接口清单
|
||
|
||
**User Story:** As a 开发者, I want 记录所有前端使用的 API 地址, so that 能核对 C# 后端是否遗漏接口。
|
||
|
||
#### Acceptance Criteria
|
||
|
||
1. THE API_Registry SHALL 记录每个接口的 URL 路径
|
||
2. THE API_Registry SHALL 记录每个接口所属的 Server_Module
|
||
3. THE API_Registry SHALL 记录每个接口的请求方式(GET/POST)
|
||
4. THE API_Registry SHALL 标注每个接口在 C# 后端的迁移状态(已迁移/未迁移/待确认)
|
||
5. THE API_Registry SHALL 记录每个接口被哪些页面/组件使用
|
||
|
||
### Requirement 6: 保持功能兼容
|
||
|
||
**User Story:** As a 用户, I want 重构后功能正常, so that 不影响正常使用。
|
||
|
||
#### Acceptance Criteria
|
||
|
||
1. WHEN 重构完成 THEN 所有现有功能 SHALL 正常工作
|
||
2. WHEN 接口返回错误 THEN 系统 SHALL 正确显示错误提示
|
||
3. WHEN 用户未登录 THEN 系统 SHALL 正确跳转到登录页
|
||
4. WHEN 需要绑定手机号 THEN 系统 SHALL 正确跳转到绑定页面
|