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

Swagger 如何过滤生成的招摇过市JSON(yaml),swagger,swagger-codegen,Swagger,Swagger Codegen,我有超过5k行的swagger.json文件,描述了数百条路径和对象。我想只使用一部分端点生成一个TypeScript客户端(使用swagger codegen)。我不希望生成的TypeScript应用程序包含与swagger.json的未使用部分连接的类或接口 如何仅过滤出一部分描述指定路径组的Swagger文档(例如,以/api/*开头的所有路径)?特别是我希望过滤后的JSON不包含未使用数据结构的定义。我认为您可以使用任务自动化(grunt、gulp、shell等)来实现。 基本上,这可以

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


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

我认为您可以使用任务自动化(grunt、gulp、shell等)来实现。 基本上,这可以是一个3步任务:

  • 获取swagger.json(或者调用swagger code gen来获取json,类似于
    java-jar swagger-codegen-cli-x.x.jar generate-i-l swagger-o GeneratedCodeSwagger
  • 删除要排除的定义/路径并创建修改的swagger.json
  • 使用
    java-jar swagger-codegen-cli-x.x.x.jar generate-i GeneratedCodeSwagger\swagger.json-l typescript angular调用传递修改后的json的代码生成器
  • 最后,我们创建了一个命令行工具,可以过滤招摇过市的文档。它可以很容易地与bash中的其他命令一起使用:

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

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

    谢谢您的回答!这是我关于解决这个问题的唯一想法。我只是想确定没有其他方法/工具可以用来做到这一点。因此,我将尝试在node.js中编写一个简单的命令行工具。