dsh-api-mock:解析 OpenAPI 生成零依赖 Mock 服务器

前言

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/json schema(若无 2xx 响应,则取第一个响应)。
  • 代码运行权限:安装即在本机运行第三方代码。请在安装前审阅源码,确认其安全性。

参考链接

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜