OpenAPI Specification


The OpenAPI Specification, originally known as the Swagger Specification, is a specification for machine-readable interface files for describing, producing, consuming, and visualizing RESTful web services. Originally part of the Swagger framework, it became a separate project in 2016, overseen by the OpenAPI Initiative, an open-source collaboration project of the Linux Foundation. Swagger and some other tools can generate code, documentation and test cases given an interface file.

History

development began in early 2010 by Tony Tam, who was working at online dictionary company Wordnik. In March 2015, SmartBear Software acquired the open-source Swagger API specification from Reverb Technologies, Wordnik's parent company.
In November 2015, SmartBear announced that it was creating a new organization called the OpenAPI Initiative under the sponsorship of the Linux Foundation. Other founding member companies included 3Scale, Apigee, Capital One, Google, IBM, Intuit, Microsoft, PayPal, and Restlet. SmartBear donated the Swagger specification to the new group. RAML and were also under consideration by the group.
On 1 January 2016, the Swagger specification was renamed the OpenAPI Specification, and was moved to a new GitHub repository.
In September 2016, the API World conference presented an API Infrastructure award to SmartBear for its ongoing work on Swagger.
In July 2017, the OpenAPI Initiative released version 3.0.0 of its specification. MuleSoft, the main contributor to the alternative RESTful API Modeling Language, joined the OAS and open-sourced their API Modeling Framework tool, which can generate OAS documents from RAML input.

Release dates

VersionDateNotes
3.0.32020-02-20Patch release of the OpenAPI Specification 3.0.3
3.0.22018-10-08Patch release of the OpenAPI Specification 3.0.2
3.0.12017-12-06Patch release of the OpenAPI Specification 3.0.1
3.0.02017-07-26Release of the OpenAPI Specification 3.0.0
2.02014-09-08Release of Swagger 2.0
1.22014-03-14Initial release of the formal document
1.12012-08-22Release of Swagger 1.1
1.02011-08-10First release of the Swagger Specification

Usage

Applications implemented based on OpenAPI interface files can automatically generate documentation of methods, parameters and models. This helps keep the documentation, client libraries, and source code in sync.

Features

The OpenAPI Specification is language-agnostic. With OpenAPI's declarative resource specification, clients can understand and consume services without knowledge of server implementation or access to the server code.

Tools that work with OpenAPI

The OpenAPI Initiative maintains a for version 3.0 of the specification. SmartBear still brands its OpenAPI tools with the Swagger moniker. The Swagger UI framework allows both developers and non-developers to interact with the API in a sandbox UI that gives insight into how the API responds to parameters and options. Swagger can handle both JSON and XML.
Swagger Codegen contains a template-driven engine to generate documentation, API clients and server stubs in different languages by parsing the OpenAPI definition. In July, 2018, William Cheng, the top contributor to Swagger Codegen, and over 40 other contributors to Swagger Codegen forked the code into a project named under the OpenAPI Tools organization.