Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to convert OpenAPI 2.0 to OpenAPI 3.0? [closed]

Are there any tools/libraries to convert OpenAPI 2.0 definitions to OpenAPI 3.0, without doing it one per row?

like image 979
Rumesh Madhusanka Avatar asked Jan 15 '20 10:01

Rumesh Madhusanka


People also ask

How do you change Swagger 2 to OpenAPI 3?

Swagger Editor has a Convert to OpenAPI 3 option under the Edit drop-down that acts as an interface to this API. All we need to do is open our document in Swagger Editor, then convert by using Edit > Convert to OpenAPI 3. This will replace our document with the OAS 3.0 version. It worked!

Is OpenAPI 3.0 backwards compatibility?

OpenAPI 3 is the successor of the widely used OpenAPI/Swagger 2.0 format, for machine-readable API definitions. It contains a variety of changes, and even though everything that can be expressed in Version 2 is supported in Version 3 as well, specifications are not backwards-compatible.

What is the difference between Swagger and OpenAPI?

Although the terms once referred to the same thing, they can no longer be used interchangeably…even though some people still do. In 2021, OpenAPI refers to the industry-standard specification for RESTful API design. Swagger refers to a set of SmartBear tools.


1 Answers

Swagger Editor

Paste your OpenAPI 2.0 definition into https://editor.swagger.io and select Edit > Convert to OpenAPI 3 from the menu.

Swagger Editor conversion from OpenAPI 2.0 to OpenAPI 3.0

Swagger Converter

Converts OpenAPI 2.0 and Swagger 1.x definitions to OpenAPI 3.0.

https://converter.swagger.io/api/convert?url=OAS2_YAML_OR_JSON_URL

This gives you JSON. If you want YAML, send the request with the Accept: application/yaml header:

curl "https://converter.swagger.io/api/convert?url=OAS2_YAML_OR_JSON_URL" -H "Accept: application/yaml" -o ./openapi.yaml

API docs: https://converter.swagger.io

GitHub repo: https://github.com/swagger-api/swagger-converter

Swagger Codegen version 3.x

Can also convert OpenAPI 2.0 and Swagger 1.x definitions to OpenAPI 3.0. Swagger Codegen has a CLI version, Maven plugin, Docker images.

Here's an example using the command-line version (you can download the latest JAR from Maven Central). Write the entire command on one line. Use openapi-yaml to get YAML or openapi to get JSON.

java -jar swagger-codegen-cli-3.0.19.jar generate
     -l openapi-yaml
     -i https://petstore.swagger.io/v2/swagger.yaml
     -o OUT_DIR

GitHub repo: https://github.com/swagger-api/swagger-codegen

like image 187
Helen Avatar answered Oct 22 '22 12:10

Helen