Skip to content

Conversation

@ljluestc
Copy link

背景 / Motivation

Resolve #830

目前每个接口都需要单独维护相同的返回头逻辑以及相同的 mock 方法:

  • 重复劳动:公共返回头(如跨域、认证相关)需要在每个接口里粘贴赋值,一旦修改需要全局搜索替换,维护成本高且容易遗漏。
  • 无法复用 Mock:某些接口需要复用相同的 mock 数据结构(如统一的分页结构、统一的用户信息),目前只能在每个接口脚本里重复编写,无法集中管理。

本 PR 引入了公共工具模块,统一管理响应头和 Mock 方法,实现“一处定义,多处使用”。


变更内容 / What’s changed

  1. 新增公共工具模块 (server/utils/commonMock.js)

    • 定义了 commonResponseHeaders 和设置方法,统一管理 CORS 等通用响应头。
    • 封装了 mockUtils 工具类,提供常用的 mock 方法:
      • success(data, msg): 标准成功响应
      • fail(code, msg): 标准失败响应
      • page(list, total): 标准分页数据结构
      • mockUser(): 生成随机用户数据
  2. Mock 服务改造 (server/middleware/mockServer.js)

    • 替换了原有硬编码的 header 设置逻辑,改为调用 commonMock.setCommonResponseHeaders。
    • 统一了跨域 (OPTIONS) 请求和正常 Mock 请求的 header 处理逻辑。
  3. Mock 脚本沙箱增强 (server/utils/commons.js)

    • 在 handleMockScript 中向脚本沙箱注入了全局对象 utils (指向 mockUtils)。
    • 用户现在可以在项目的 Mock 脚本 中直接调用 utils.success()、utils.mockUser() 等方法,无需重复编写代码。

设计说明 / Design notes

  • 非侵入式扩展

    • 新增的 utils 对象注入到脚本沙箱中,不改变原有脚本的 MockRandom 对象行为。
    • 现有的接口如果没有使用 utils,其行为保持完全一致(向后兼容)。
  • 易于维护

    • 所有的通用 mock 逻辑集中在 server/utils/commonMock.js。若将来需要调整标准分页格式或增加默认 Header,只需修改此文件即可全局生效。

测试说明 / How to test

1. 安装依赖 & 启动项目 / Setup

# 安装依赖 / Install dependencies
npm install

# 运行单元测试 / Run Unit Tests
# 验证新增的公共 mock 工具类
npm test test/commonMock.test.js

# 启动开发环境 / Start Server
npm run dev

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

是否考虑增加公共类的定义,公共方法的定义,一处定义多处使用

1 participant