dsh-api-contract:OpenAPI 契約解析與客戶端生成工具

DeepSeek Harness (DSH) 採用插件化架構,旨在通過模塊化工具解決特定開發場景的痛點。在 API 接口的維護與調用過程中,保持接口定義(OpenAPI 規範)與客戶端代碼的一致性,以及及時識別版本升級帶來的破壞性變更,是開發者常遇到的問題。dsh-api-contract 插件正是爲此設計,它能在本地直接解析規範並生成類型化代碼。

插件定位與基礎信息

這是一個工作流類插件,由 uckkk 維護,採用 MIT 開源許可證。它是一個純 Node 實現,不依賴網絡或外部服務。

核心能力包括:
* 解析 OpenAPI 3.x 規範(支持 JSON 或 YAML)。
* 生成 TypeScript 類型化客戶端(基於 fetch)。
* 生成 Python 類型化客戶端(基於 requests)。
* 檢測破壞性變更,包括刪除接口路徑/方法、刪除必填參數、參數類型變化、響應結構變化等。

安裝與啓用

通過官方插件命令安裝:

dsh plugin add github:uckkk/dsh-api-contract

安裝完成後,需要在項目的 package.json 配置文件中,將插件加入 dsh.profile.bundles 列表,使其在會話中可用:

{
  "dsh": {
    "profile": {
      "bundles": ["dsh-api-contract"]
    }
  }
}

典型用法

安裝並啓用後,可以在 DSH 會話中直接調用插件提供的工具。

1. 生成類型化客戶端
根據指定的 OpenAPI 規範文件生成客戶端代碼。以下命令生成一個 TypeScript 客戶端:

gen_client(spec="openapi.yaml", lang="typescript", outDir="./src/api")

2. 檢測破壞性變更
在升級接口規範版本前,對比新舊規範以發現潛在的破壞性變更。以下命令對比兩個版本:

diff_spec(oldSpec="openapi.v1.", newSpec="openapi.v2.")

適用場景與注意事項

  • 技術棧:TypeScript 客戶端直接使用瀏覽器原生的 fetch;Python 客戶端依賴 requests 庫,使用前需確保已安裝(pip install requests)。
  • 源碼安全:插件以當前 DSH 進程的權限在本機運行第三方代碼。請務必在安裝前審閱其源碼,確認無安全風險後再使用。
  • 格式支持:支持 JSON 以及常見的塊結構 YAML(支持嵌套映射、序列、$ref 引用等)。

總結

dsh-api-contract 爲 DSH 環境提供了一套完整的接口契約管理方案。通過解析 OpenAPI 規範生成類型化客戶端並審計破壞性變更,可以減少手動維護代碼的出錯率,提升 API 交互的規範性。

相關鏈接
* GitHub 倉庫
* 社區目錄

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

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

小夜