Files
WonderQ-Project/docs/module-config-api.md
duanshuwen 6245159e7c feat: 添加后台登录验证码、记住密码功能,优化媒体资源与前端规范
- 新增后台登录图形验证码功能,完善登录安全防护
- 新增登录rememberMe参数,控制Refresh Token的会话持久化策略
- 实现OSS私有桶媒体URL自动签名,统一处理图片资源的临时访问签名
- 新增素材库数据库表与上传API,规范媒体资源管理流程
- 统一前端UI图标使用@element-plus/icons-vue,重构布局图标组件
- 登录页新增验证码输入、刷新功能,添加账号记忆与记住密码逻辑
- 更新全套文档,补充API契约、技术决策记录与集成流程说明
- 修复多个业务页面的图标展示问题,新增认证流程相关测试用例
2026-08-27 07:50:59 +08:00

3.1 KiB
Raw Blame History

首页站点配置 API 契约

本文档约束 WonderQ-AdminWonderQ-Admin-UI-Vue 对首页站点模块的维护。旧目的地主视觉、需求页主视觉、需求页特色卡片、需求表单、独立体验推荐、旧团队共创/极境视界页面和旧发布重置配置不再属于当前契约。

接口清单

除登录接口外,所有接口需要 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 列表排序
GET /api/admin/home/play-recommendations 获取首页玩法推荐
GET /api/admin/home/team-buildings 获取首页团队共创
GET /api/admin/home/wild-archives 获取首页极境视界

允许的站点 module 只有:heroSlidesvehicleOptions

首页工作台的五个业务区域为:顶部轮播、玩法推荐、万趣用车、团队共创、极境视界。后面四项使用各自首页内容接口或玩法领域接口维护,不再通过旧的单例站点模块承载。

响应约定

{
  "code": 200,
  "msg": "success",
  "data": {
    "heroSlides": [],
    "vehicleOptions": []
  }
}

创建接口返回:

{
  "code": 201,
  "msg": "success",
  "data": {
    "id": "module-item-001"
  }
}

排序请求必须提交当前模块的完整 itemIds,不能重复;成功返回 data: { "items": [] }。删除成功返回 data: { "id": "..." }。参数错误、资源不存在和服务异常分别使用统一契约的 400404500 响应。

字段边界

  • GET /api/admin/site-config 返回启用和停用的完整记录,前端负责显示状态。
  • sortOrder 为从 0 开始的非负整数,后端负责重新规范化。
  • 图片字段保存最终 HTTP(S) URL不接受 base64管理端上传组件通过媒体上传接口先取得 URL再提交配置。OSS 私有读场景下,接口响应会为 OSS 图片 URL 临时追加短时 GET 签名,供管理端和 Public API 回显;后端会在每次响应时重新签名,签名参数不应由客户端自行拼接或长期缓存。
  • POST /api/admin/media-assets/upload 只创建素材库记录,不会自动修改 heroSlidesvehicleOptions。将图片用于首页配置时,必须把返回的 data.url 写入对应编辑表单,并继续提交对应的 POSTPATCH /api/admin/site-config/{module}/{id};成功后才会在 GET /api/admin/site-config 中返回该图片。
  • 首页玩法推荐、团队共创和极境视界保留独立的新增、编辑、删除、启停和排序能力,保存后由 Public API 直接提供给 MiniAPP。
  • 旧需求页主视觉、特色卡片、需求表单、体验推荐、用车服务说明等表结构已由后续 Alembic 迁移删除,不能在新代码中重新声明或调用。