2016-09-30 57 views
0

我有超過5k行的swagger.json文件,描述了數百個路徑和對象。我想生成一個TypeScript客戶端(使用swagger-codegen)只使用一部分端點。我不希望生成的TypeScript應用程序包含與swagger.json的未使用部分連接的類或接口。如何僅過濾Swagger文檔的一部分,描述指定的一組路徑(例如,所有路徑起始與/api/*)?特別是我想過濾的JSON不包含definitions未使用的數據結構。如何篩選生成的Swagger JSON(yaml)

回答

0

最後,我們創建swagger-json-filter - 一個命令行工具,允許濾波揚鞭documentat離子。它可以沿其它命令在bash容易地使用:

cat input.json | swagger-json-filter --include-paths="^\/api\/.*" > output.json 

該工具被執行以濾除來自輸出不期望的定義(也嵌套)需要一個邏輯。

1

我認爲你可以做到這一點,使用任務自動化(grunt,gulp,shell,不管)。 基本上也可以是3個步驟的任務:

  1. 獲得swagger.json(或者叫招搖代碼生成,以獲得JSON,喜歡的東西java -jar swagger-codegen-cli-x.x.x.jar generate -i <URL> -l swagger -o GeneratedCodeSwagger
  2. 除去定義/你想要的路徑排除和創建修改swagger.json
  3. 調用的代碼生成經過修改的JSON與java -jar swagger-codegen-cli-x.x.x.jar generate -i GeneratedCodeSwagger\swagger.json -l typescript-angular
+0

謝謝你的回答!這是我解決這個問題的唯一想法。我只是想確保沒有其他方式/工具可以用來做到這一點。所以我會嘗試在node.js中編寫一個簡單的命令行工具。 – Terite