Files
opsxapi/apps/server/internal/docs/content/14-mock.md
T
logan 9a019408ab 设置中心与 Mock 数据功能
- 顶栏:移除 tauri-native 传输徽章;⋯ 更多菜单重做(设置/Mock/环境/主题/文档/官网/重置)
- 设置弹窗重写:左侧导航(外观/网络/Mock 数据/数据管理/关于)+ 分组卡片 + 开关控件
- Mock 引擎(packages/core/src/mock.ts):Mock.js 常用语法子集 + 智能字段匹配
  - 61 条默认规则(通配符/精确/正则 × string/number/integer/boolean)
  - 发送链路接入:Query/JSON Body/urlencoded/form-data/GraphQL Variables
  - Body 工具栏:智能填充(生成可编辑 @表达式模板)+ Mock 预览
  - 设置页规则表 CRUD + 表达式速查表即时预览
- 文档新增「Mock 数据」页(/docs/mock),Manifest 顺序调整
- 新增 16 个 Mock 单测(总 37 前端用例全绿)
2026-09-18 01:35:54 +08:00

3.0 KiB
Raw Blame History

Mock 数据

联调时后端接口没就绪?OpsxAPI 内置 Mock.js 风格的数据生成器,两种用法覆盖绝大多数场景:

  1. 显式表达式 —— 在参数值、Body 中直接写 @cname、@integer(1,100);
  2. 智能匹配 —— 开启后按字段名自动套用规则表(username → 姓名、email → 邮箱…),一行不用写。

开启与配置

顶栏 ⋯ → Mock 数据(或「设置 → Mock 数据」):

  • 启用 Mock 数据:总开关,关闭后 @ 表达式按普通文本原样发送;
  • 智能 Mock 匹配:JSON Body 字段值未写表达式时,按字段名匹配规则自动生成;
  • 智能匹配规则表:数据类型(string / number / integer / boolean)、匹配方式(通配符 / 完全匹配 / 正则)、匹配规则(如 *name*)、Mock 表达式、备注与启用开关,支持搜索、新增、删除与恢复默认。

规则从上到下匹配,先命中先用;类型需与 JSON 字段实际类型一致(KV 参数一律按 string 匹配)。

表达式速查

表达式 说明 示例输出
@cname 中文姓名 王国强
@email 邮箱 kx8f2@qq.com
@phone 手机号 138****2733 形式 11 位
@id 身份证号 18 位
@guid UUID / GUID 3f2b…-…
@integer(1, 100) 整数 42
@float(1, 9999, 2) 小数(保留 2 位) 128.50
@boolean 布尔 true
@string(8, 16) 随机字符串 aZ3k…
@datetime(YYYY-MM-DD HH:mm:ss) 日期时间 2026-09-17 14:30:00
@date(YYYY-MM-DD) / @time(HH:mm:ss) 日期 / 时间 —
@timestamp 毫秒时间戳 1760000000000
@url / @domain / @ip URL / 域名 / IPv4 —
@province / @city(true) / @county(true) 省市区 广东省深圳市南山区
@ctitle(4, 12) / @csentence(10, 24) 中文标题 / 句子 —
@image(200x200) 图片地址 picsum 随机图
@pick("A", "B", "C") 从列表中选择 B

未列出的写法会原样发送,可放心与真实值混用。

在请求中使用

Params / x-www-form-urlencoded / form-data:值一栏直接填表达式。

username = @cname
page     = @integer(1, 10)

JSON Body:叶子值写表达式,或交给智能匹配:

{
  "username": "@cname",
  "email": "@email",
  "age": "@integer(18, 60)",
  "vip": "@boolean"
}

Body 工具栏提供两个辅助按钮:

  • 智能填充:按规则把 JSON 各字段值批量替换为对应 @ 表达式,生成可编辑的 Mock 模板;
  • Mock 预览:即时查看发送时实际生成的数据,不必真的发请求。

生效范围

  • 生效:Query 参数、JSON / XML / Text Body、x-www-form-urlencoded、form-data、GraphQL Variables;
  • 不生效:Headers、Cookies、鉴权字段(避免意外改坏签名与令牌)。

提示:Mock 在发送瞬间求值,同一请求每次发送都会得到新数据;预览结果仅供核对格式。