智能接口工具箱

Polar Sponsor
爱发电 赞助
.NET 9.0

MockLab 是一个**智能接口工具箱**,支持 Mock 数据生成、请求转发、数据复现——接口开发调试一站式解决。 支持任意格式的接口文档(Markdown、Word、Java 源码、纯文本等)和任意结构(表格、嵌套 JSON、加密字段、数组对象等)。模型自动理解文档并驱动整个流程:解析文档 → 生成 Sch...

MockLab

功能概述

MockLab是一项面向实际任务的技能,主要用于用户说"启动 MockLab"并提供接口文档后,执行以下步骤:;Schema 生成规则;

核心要点

  • 模型根据字段语义自动推断 rule,写入 Schema:;
  • 渠道/合作方 ID;
  • fixed:{值};

使用与执行

random:6;6位随机数字;timestamp:ms;毫秒时间戳;phone;11位真实号段手机号;idcard;18位合法身份证。

结果检查与注意事项

它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。该技能适合用于一次性任务,也可以接入自动化工作流,与其他技能或上层代理配合完成更完整的业务链路;在组合使用时,应明确每一步的输入输出关系,并避免不同步骤之间出现参数冲突。

MockLab

核心流程

用户说"启动 MockLab"并提供接口文档后,执行以下步骤:

1. 获取文档内容
   - 本地文件路径 → Read 工具读取
   - URL 链接 → web_fetch 抓取
   - 直接粘贴内容 → 直接使用

2. 模型自主解析文档
   - 提取所有接口:路径、方法、请求/响应字段
   - 推断每个字段的 Mock 生成规则
   - 整理 inner_schemas(嵌套子结构)
   - 整理 partner 信息(渠道号、签名格式等)
   - 判断跨接口状态关联(ref 字段)

3. 保存 Schema 到 schema_store/
   - 文件名:schema_store/{project_name}.json
   - project_name 由模型根据文档内容生成(如"平安银行"、"微信支付")

4. 启动 Mock Server
   python {skill_path}/mock_server.py --port 18080 --project {project_name}

5. 自动打开浏览器
   http://localhost:18080

6. 告知用户服务已启动,介绍如何使用

Schema 生成规则

模型根据字段语义自动推断 rule,写入 Schema:

字段特征 rule 生成结果
渠道/合作方 ID fixed:{值} 固定值
随机数 random:6 6位随机数字
时间戳 timestamp:ms 毫秒时间戳
手机号 phone 11位真实号段手机号
身份证 idcard 18位合法身份证
姓名 name 中文姓名
车牌号 plate 合规车牌号
金额 amount:lo-hi 指定范围金额
利率 rate:lo-hi 指定范围利率
Token token:32 32位随机字符串
枚举 enum:a,b,c 或 enum:k=v,k=v 枚举值
自增序列 sequence:{key} 自增序列号
国标码 province:code 省市国标码+名称
日期 date:format 格式化日期
嵌套对象 nested:{schema_name} 引用 inner_schemas
对象数组 array:{schema_name} 数组,元素引用 inner_schemas
子对象 object:{schema_name} 引用 inner_schemas
跳过 skip 不生成(sign 等)
请求镜像 mirror 取请求 body 中同名字段的值,原样返回
动态取 body body:data.order_id 取请求 body 中嵌套字段
动态取路径 path:order_id 取 URL 路径参数
动态取参数 query:page 取 URL query string 参数
动态取头 header:Authorization 取请求头
动态取状态 state:token 取跨次调用状态(ref 字段)
条件包含 when:{"field":"status","eq":"1"} 满足条件时才返回该字段

字段语义智能判断

模型根据字段名和中文含义自主判断,无需用户指定:

  • 含 phone、mobile、手机 → phone
  • 含 idcard、身份证、证件号 → idcard
  • 含 name、姓名、cust_name → name
  • 含 plate、license、车牌 → plate
  • 含 amount、amt、金额、loan → amount
  • 含 rate、利率 → rate
  • 含 province、省份 → province:code
  • 含 city、城市 → city:province_code
  • 含 sign、签名 → skip
  • 含 ciphertext、加密 → skip(标注加密占位)
  • 含 seq、no、编号、订单 → sequence:{field_name}

reqData / data 加密字段处理

  • 模型从文档提取加密明文结构
  • 写入 rule: "nested:{schema_name}" 引用 inner_schemas
  • UI 上点击可展开看到完整明文
  • 响应中字段值显示 "[SM4加密占位]"

ref 跨接口状态关联

  • 响应字段标记 "is_ref": true → 自动存入状态表
  • 后续接口请求中引用该字段时,自动填充上一次的值
  • 状态持久化到 state_store.json,服务重启不丢失
  • UI 上显示"引用自 X.X"标识

示例(accessToken 跨接口传递):

// applyAccessToken 响应字段
{ "name": "accessToken", "rule": "token:32", "is_ref": true }

// 后续接口请求字段
{ "name": "accessToken", "rule": "state:accessToken" }

① 延迟模拟(interface.delay)

推荐在 UI 上直接配置(http://localhost:18080 选中接口后顶部设置栏)。

勾选"延迟" → 输入最小值和最大值(ms)。也可以在 Schema JSON 里写:

{ "delay": "200-500" }
写法 效果
"delay": "300" 固定 300ms
"delay": "200-500" 随机 200~500ms
"delay": "1000-3000" 大压力测试 1~3s

② 错误注入(interface.error)

推荐在 UI 上直接配置,清晰分隔每个参数。

勾选"错误" → 选择错误类型 → 填概率/错误码/消息。也可以在 Schema JSON 里写:

{ "error": "500@0.05:ERR001:自定义错误消息" }

格式:错误类型[@概率[:错误码[:消息]]]

字段 说明
错误类型 HTTP状态码(500/400/401/403/404/429)或 timeout / network_error / rate_limit
概率 0.0~1.0,1.0 = 100% 触发
错误码 自定义业务错误码(如 ERR001)
消息 自定义错误消息内容

③ 请求镜像(mirror / body:xxx)

把请求参数原样反射回响应,让接口"更逼真":

{
  "name": "下单",
  "path": "/order/create",
  "req_fields": [
    { "name": "order_id", "type": "string" },
    { "name": "amount", "type": "number" }
  ],
  "resp_fields": [
    { "name": "order_id", "rule": "mirror" },
    { "name": "amount", "rule": "mirror" },
    { "name": "status", "rule": "fixed:PAID" }
  ]
}

请求 {"order_id": "A123", "amount": 100} → 响应 {"order_id": "A123", "amount": 100, "status": "PAID"}

④ 动态响应(path:xxx / query:xxx / header:xxx / state:xxx / when)

根据请求内容动态生成响应,不只是返回假数据:

路径参数

{ "name": "order_id", "rule": "path:order_id" }

GET /order/{order_id} → 响应中 order_id 引用 URL 里实际的值

查询参数

{ "name": "page", "rule": "query:page" }

GET /list?page=2 → 响应中 page 取 query 参数值

嵌套 body 字段

{ "name": "user_phone", "rule": "body:user.phone" }

请求 {"user": {"phone": "13800138000"}} → 响应 {"user_phone": "13800138000"}

跨次状态引用

{ "name": "token", "rule": "state:access_token" }

取上一次登录接口存入的 access_token 状态

条件字段(when)

{ "name": "vip_discount", "rule": "amount:0-0.5", "when": {"field": "body.is_vip", "op": "eq", "value": true} }
{ "name": "discount", "rule": "fixed:0", "when": {"field": "body.is_vip", "op": "exists"} }

只有满足条件时才返回该字段,支持 eq / ne / gt / lt / contains / exists / not_exists

启动命令

python {skill_path}/mock_server.py --port 18080 --project {project_name}

运行时文件结构

{skill_path}/
├── SKILL.md
├── mock_server.py          # FastAPI 服务(内嵌 HTML UI)
└── schema_store/           # 由服务器自动创建
    ├── {project_1}.json
    └── {project_2}.json

服务器运行后创建:

  • schema_store/ 目录
  • state_store.json 状态文件

多项目支持

  • 每个第三方为独立项目
  • 运行中调用 POST /mock/load 实时加载新项目(无需重启)
  • UI 右上角项目下拉框切换

错误处理

  • 文档格式无法解析 → 向用户询问更多信息
  • 缺少关键字段 → 模型根据语义合理推断,标注"推测"
  • 端口被占用 → 自动尝试下一个端口(18081, 18082...)
  • Schema 加载失败 → 报错并展示具体错误位置

相关专题

更多
Gradle插件开发入门教程
Gradle插件开发入门教程

本专题介绍Gradle插件开发的基本流程,涵盖插件类编写、自定义任务注册、扩展参数设计和插件应用方法,帮助你理解插件如何组织构建逻辑,减少多个项目之间的重复配置。

2026.10.22

0

11

Gradle Wrapper配置教程
Gradle Wrapper配置教程

本专题介绍Gradle Wrapper的基本作用,涵盖文件组成、生成方法、版本配置和任务调用,帮助你理解项目如何使用指定的Gradle版本,减少不同开发环境带来的构建差异。

2026.10.22

0

10

Golangci-lint检查器使用教程
Golangci-lint检查器使用教程

本专题整理Golangci-lint常用Linters的用途与配置方法,覆盖错误处理、无效代码、安全、复杂度、命名和依赖检查,帮助项目合理选规则。

2026.10.22

0

15

Gradle怎么构建Java项目
Gradle怎么构建Java项目

本专题介绍Gradle Java项目构建方法,涵盖Java插件配置、依赖声明、源码编译、测试执行和打包检查,帮助你理解各阶段的任务关系,逐步完成项目构建。

2026.10.22

0

10

PHP时间戳漏洞修复教程
PHP时间戳漏洞修复教程

本专题汇总PHP常见时间戳漏洞,包括2038年溢出、时区漂移、时间戳伪造、重放攻击、时间盲注与日志审计失效等,并给出升级64位环境、使用 DateTimeImmutable、统一UTC、严格超时校验、预处理绑定、hash_equals 比对等修复方案,帮助开发者快速排查和加固时间相关代码。

2026.10.22

0

25

Golangci-lint配置文件与规则设置
Golangci-lint配置文件与规则设置

本专题聚焦Golangci-lint YAML配置文件,讲清运行参数、规则启停、目录排除、问题过滤及严重级别设置,便于团队统一检查标准。

2026.10.22

0

15

Golangci-lint安装与入门教程
Golangci-lint安装与入门教程

本专题讲解Golangci-lint的安装、初始化、基础命令和首次代码检查,覆盖本地环境、Docker及多平台用法,帮助Go开发者快速上手。

2026.10.22

0

15

PHP2Shell高危漏洞修复教程
PHP2Shell高危漏洞修复教程

PHP2Shell漏洞是什么,哪些PHP版本和运行环境会受到影响,服务器应该如何检测与修复?本专题提供版本自查脚本、Linux与Docker升级命令、PHP-FPM和Apache排查步骤,以及修复验证、临时缓解和应急响应方案。

2026.10.22

0

12

剧云人物设定与关系管理教程
剧云人物设定与关系管理教程

本专题介绍剧云人物设定与关系管理,讲解角色小传、性格职业、人物目标、背景资料和关系网络的创建及维护方法。

2026.10.22

0

16

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
热门推荐
/
最新课程
phpStudy极速入门视频教程
phpStudy极速入门视频教程

共6课时 | 54.7万人学习

独孤九贱(4)_PHP视频教程
独孤九贱(4)_PHP视频教程

共89课时 | 134.1万人学习