我有超过 5k 行长的 swagger.json 文件,描述了数百个路径和对象。我想仅使用部分端点生成一个 TypeScript 客户端(使用 swagger-codegen)。我不希望生成的 TypeScript 应用程序包含与 swagger.json 的未使用部分连接的类或接口
如何仅过滤出 Swagger 文档的一部分,描述指定的路径组(例如所有以 开头的路径/api/*
)?特别是我希望过滤后的 JSON 不包含definitions
未使用的数据结构。
我有超过 5k 行长的 swagger.json 文件,描述了数百个路径和对象。我想仅使用部分端点生成一个 TypeScript 客户端(使用 swagger-codegen)。我不希望生成的 TypeScript 应用程序包含与 swagger.json 的未使用部分连接的类或接口
如何仅过滤出 Swagger 文档的一部分,描述指定的路径组(例如所有以 开头的路径/api/*
)?特别是我希望过滤后的 JSON 不包含definitions
未使用的数据结构。
最后,我们创建了swagger-json-filter——一个允许过滤 Swagger 文档的命令行工具。它可以很容易地与 bash 中的其他命令一起使用:
cat input.json | swagger-json-filter --include-paths="^\/api\/.*" > output.json
该工具正在执行从输出中过滤掉不需要的定义(也嵌套)所需的逻辑。
我认为您可以使用任务自动化(grunt、gulp、shell 等)来做到这一点。基本上它可能是一个 3 步任务:
java -jar swagger-codegen-cli-x.x.x.jar generate -i <URL> -l swagger -o GeneratedCodeSwagger
)java -jar swagger-codegen-cli-x.x.x.jar generate -i GeneratedCodeSwagger\swagger.json -l typescript-angular