← 返回列表
D

dsh-api-contract

v0.1.0 · 1 天前发布

接口契约助手:解析 OpenAPI 3.x(JSON/YAML),生成 TypeScript / Python 类型化客户端,并检测接口升级的破坏性变更

deepseek-harnessdshdsh-pluginopenapiswaggerclient接口契约

README

dsh-api-contract · 接口契约助手

解析 OpenAPI 3.x(JSON 或 YAML),生成 TypeScript / Python 类型化客户端,并检测两个规范版本之间的破坏性变更。纯 Node 实现,无网络、无外部服务。

提供的工具

| 工具 | 作用 |
|---|---|
| gen_client | 解析规范,生成类型化客户端(TS 基于 fetch / Python 基于 requests) |
| diff_spec | 对比旧版/新版规范,列出破坏性变更与非破坏性变更 |

安装

bash
dsh plugin add dsh-api-contract

安装后在 profile 的 package.jsondsh.profile.bundles 中加入 "dsh-api-contract"

用法示例


根据 openapi.yaml 生成一个 TypeScript 客户端
→ 调用 gen_client(spec="openapi.yaml", lang="typescript", outDir="./src/api")

升级接口前看看有没有破坏性变更
→ 调用 diff_spec(oldSpec="openapi.v1.json", newSpec="openapi.v2.json")

破坏性变更检测项

  • 删除接口路径、删除方法

  • 删除必填参数、参数类型变化

  • 移除 2xx 响应、响应结构变化
  • 说明

  • 支持 JSON 与常见块结构 YAML(嵌套映射、序列、$ref、内联 []/{}、字面量块 |)。

  • Python 客户端依赖 requests(`pip install req
  • 版本兼容矩阵

    DSH 版本状态说明
    dsh@0.1.0-rc.6 ✅ 兼容 cordis patch ✅
    dsh@0.1.0 ✅ 兼容 标准 patch ✅
    dsh@0.2.0 ⚠️ 待验证 待实测(API 可能在变)
    dsh@0.3.0+ ❓ 未知 尚未发布

    💡 兼容矩阵每周末自动跑实测,欢迎 PR 修正

    元数据

    License
    MIT
    npm
    dsh-api-contract
    Repo
    Engines
    {}
    Weekly DL
    0
    Monthly DL
    0
    dsh.bundle
    {"bundle":{"patch":"./cordis.patch.yml"}}