前言¶
DeepSeek Harness (DSH) 采用“一切皆插件”的理念,允许开发者通过插件扩展智能体的能力。在开发接口联调阶段,等待后端接口就绪是常见的瓶颈。dsh-api-mock 解决这一问题,它提供了一种在本地快速生成 Mock 服务器的方案,帮助前端或测试人员提前介入开发流程。
插件简介¶
dsh-api-mock 是一个由 uckkk 维护的联网工具类插件。它解析 OpenAPI 3.x 规范(支持 JSON 或 YAML),生成一个纯 Node.js 实现的 Mock 服务器。该服务器不依赖任何外部网络服务或第三方库,基于 Node 内置 http 模块构建,确保前端可以直接获取响应数据进行联调。
安装¶
安装该插件需要执行以下命令:
dsh plugin add dsh-api-mock
安装后,插件会被注册到当前会话中。
核心能力¶
该插件主要提供以下功能:
- 解析规范:支持解析 OpenAPI 3.x 格式的 JSON 或 YAML 文件。
- 生成服务器:根据规范生成
mock-server.mjs文件,该文件是零依赖的,可直接运行。 - 确定性示例数据:按照接口响应的 Schema 确定性生成示例数据。数据生成遵循特定规则(如 string 转为字符串,integer 转为数字,email 转为邮箱格式),同时也尊重字段定义中的
example、default和enum值。 - 纯本地运行:完全在本地运行,不涉及网络请求或外部服务调用。
使用方式¶
插件提供了两个主要工具函数供调用。
生成 Mock 服务器¶
如果有一个 openapi.yaml 文件,需要生成一个运行在 3000 端口的 Mock 服务器,可以调用:
mock_generate(spec="openapi.yaml", port=3000)
执行后,会生成一个 mock-server.mjs 文件。进入该目录,运行以下命令即可启动服务器:
node mock-server.mjs
生成示例数据¶
如果需要为特定 Schema 造一条测试数据,例如 User schema,可以调用:
mock_sample(spec="openapi.yaml", ref="#/components/schemas/User")
注意事项¶
- 数据生成逻辑:示例数据是按 Schema 类型确定性生成的。例如,字符串字段会填充示例字符串,整数字段填充 42,邮箱字段填充
user@example.com,枚举字段取首项。同时也优先使用 Schema 中定义的example、default或enum值。 - 响应取值逻辑:Mock 服务器返回的响应取自接口定义中第一个 2xx 状态码的
application/jsonschema(若无 2xx 响应,则取第一个响应)。 - 代码运行权限:安装即在本机运行第三方代码。请在安装前审阅源码,确认其安全性。