首页 > 解决方案 > 如何将 swagger 1.1 规范转换为 swagger >= 1.2 规范

问题描述

我正在尝试为 C#/asp.net 核心生成客户端代码,以使用具有 swagger 1.1 规范的服务。(服务不在我的控制范围内)。不幸的是,大多数最新的工具都需要一个 swagger 1.2 规范。大多数工具甚至需要 open-api 2.0。甚至大多数转换器都是从 1.2 开始的。有人知道从 1.1 升级到 1.2 的工具吗?

我什至会考虑手动重写,但我在任何地方都找不到 1.1 和 1.2 之间的变化

标签: swaggeropenapi

解决方案


首先,1.2也是一个很老的版本。考虑转换到 OpenAPI 2.0(现在大多数工具都在使用)或者甚至是 OpenAPI 3.0(最新版本)。

大摇大摆的代码生成器

Swagger Codegen可以从 1.x-3.0 规范生成客户端/服务器代码,也可以将 Swagger 1.x 转换为 OpenAPI 2.0 或 3.0。

要使用Codegen CLI v. 2.x从 Swagger 1.x 规范生成 C# 客户端:

java -jar swagger-codegen-cli-2.4.0.jar generate
     -i http://path/to/spec.json
     -l csharp
     -o ./csharp-client

要将 Swagger 1.x 转换为 OpenAPI 2.0,Codegen CLI v. 2.x 带有-l swagger获取 JSON 或-l swagger-yaml获取 YAML 的参数。

java -jar swagger-codegen-cli-2.4.0.jar generate
     -i http://path/to/spec.json
     -l swagger
     -o ./converted

要转换为 OpenAPI 3.0,请使用带有参数的Codegen CLI v. 3.x-l openapi以获取 JSON 或-l openapi-yaml获取 YAML。

java -jar swagger-codegen-cli-3.0.3.jar generate
     -i http://path/to/spec.json
     -l openapi
     -o ./converted

API 转换器

API Transformer声称支持 Swagger 1.x -> 1.2 / 2.0 / 3.0 转换。


推荐阅读