如何过滤生成的Swagger JSON(yaml)

时间:2016-09-30 09:25:10

标签: swagger swagger-codegen

我有超过5k行的swagger.json文件描述了数百个路径和对象。我想只使用一部分端点生成一个TypeScript客户端(使用swagger-codegen)。我不希望生成的TypeScript应用程序包含与未使用的swagger.json部分相关联的类或接口

如何仅过滤掉Swagger文档的一部分,描述指定的路径组(例如,以/api/*开头的所有路径)?特别是我希望过滤后的JSON不包含definitions未使用的数据结构。

2 个答案:

答案 0 :(得分:1)

我认为你可以使用任务自动化(grunt,gulp,shell等)来做到这一点。 基本上它可能是一个3步骤的任务:

  1. 获取swagger.json(或调用swagger code-gen获取json,类似java -jar swagger-codegen-cli-x.x.x.jar generate -i <URL> -l swagger -o GeneratedCodeSwagger
  2. 删除要排除的定义/路径,并创建修改后的swagger.json
  3. 使用java -jar swagger-codegen-cli-x.x.x.jar generate -i GeneratedCodeSwagger\swagger.json -l typescript-angular
  4. 调用代码生成器传递修改过的json

答案 1 :(得分:0)

最后,我们创建了swagger-json-filter - 一个命令行工具,允许过滤Swagger文档。它可以很容易地与bash中的其他命令一起使用:

fromDate

该工具正在执行从输出中过滤掉不需要的定义(也嵌套)所需的逻辑。