Files
WonderQ-Project/docs/module-config-api.md
duanshuwen e082bd2d98 feat(api): 实现三端统一的JSON API响应契约
- 新增`api_response.py`统一响应封装工具类,提供标准成功/错误响应构造方法
- 重构WonderQ-Admin全局异常处理器,将所有异常转换为标准响应格式
- 修改所有公共和管理端接口的返回逻辑,统一使用`code`(与HTTP状态码一致)、`msg`和`data`的三层结构
- 新增`api-response-contract.md`文档,定义完整的三端统一JSON响应规范
- 更新所有领域API文档,明确业务数据需位于`data`字段内,补充响应格式说明
- 为WonderQ-MiniAPP和WonderQ-Admin-UI新增响应解析逻辑和类型定义,自动完成协议校验和错误处理
- 更新所有测试用例,适配新的响应结构确保接口符合契约要求
- 新增`module-config-api.md`模块配置API文档,补充站点模块配置的接口约定
- 更新项目README文档,调整文档分类顺序将响应契约置于首位
2026-08-19 22:02:20 +08:00

59 lines
2.0 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.

# 页面模块配置 API 契约
本文档补充 `WonderQ-Admin``WonderQ-Admin-UI` 对站点页面模块的维护约定。接口路径保持现有实现不变,所有 JSON 响应遵循 [三端统一 API 响应契约](./api-response-contract.md)。
## 接口清单
除登录接口外,所有接口需要 `Authorization: Bearer <admin-jwt>`
| 方法 | 路径 | 说明 |
| --- | --- | --- |
| `GET` | `/api/admin/site-config` | 获取全部模块和停用记录 |
| `POST` | `/api/admin/site-config/{module}` | 新增模块项,成功 `201` |
| `PATCH` | `/api/admin/site-config/{module}/{id}` | 更新模块项 |
| `DELETE` | `/api/admin/site-config/{module}/{id}` | 删除模块项 |
| `PATCH` | `/api/admin/site-config/{module}/reorder` | 按完整 ID 列表排序 |
允许的 `module``heroSlides``destinationHero``demandHero``demandFeatureCards``demandForm``vehicleOptions`
## 响应约定
列表、详情、删除和排序的业务字段放在 `data` 内:
```json
{
"code": 200,
"msg": "success",
"data": {
"heroSlides": [],
"destinationHero": [],
"demandHero": [],
"demandFeatureCards": [],
"demandForm": [],
"vehicleOptions": []
}
}
```
创建接口返回:
```json
{
"code": 201,
"msg": "success",
"data": {
"id": "module-item-001"
}
}
```
排序请求必须提交当前模块的完整 `itemIds`,不能重复;成功返回 `data: { "items": [] }`。删除成功返回 `data: { "id": "..." }`。参数错误、资源不存在和服务异常分别使用统一契约的 `400``404``500` 响应。
## 字段边界
- `GET` 返回启用和停用的完整记录,前端负责显示状态。
- `sortOrder` 为从 `0` 开始的非负整数,后端负责重新规范化。
- 图片字段保存最终 HTTP(S) URL不接受 base64。
- `demandForm` 为单例模块,不执行无意义的排序。
- 站点模块只负责站点配置;首页内容、玩法、详情、管家和客片案例使用各自领域文档。