OpenAPI Specification

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search

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.[1] Originally part of the Swagger framework, it became a separate project in 2016, overseen by the OpenAPI Initiative, an open source collaborative project of the Linux Foundation.[2] Swagger and some other tools can generate code, documentation and test cases given an interface file.

History[edit]

Swagger development began in early 2010 by Tony Tam who was working at Wordnik, on online dictionary.[3] In March 2015, SmartBear Software acquired the open source Swagger API specification from Reverb Technologies.[4]

In November 2015, SmartBear, the company that maintained the Swagger specification and associated tools, announced that it was helping create a new organization, under the sponsorship of the Linux Foundation, called the Open API Initiative. A variety of companies, including Google, IBM and Microsoft are founding members.[5][6] SmartBear donated the Swagger specification to the new group. RAML and API Blueprint were also under consideration by the group.[7][8]

On 1 January 2016, the Swagger specification was renamed the OpenAPI Specification (OAS), and was moved to a new repository in GitHub.

In September 2016, the API World conference presented an API Infrastructure award to SmartBear for its ongoing work on Swagger.[9]

In July 2017, the OpenAPI Initiative released version 3.0.0 of its specification.[10] MuleSoft, the main contributor to the alternative RESTful API Modeling Language (RAML), joined the OAS and open sourced their API Modeling Framework tool, which can generate OAS documents from RAML input.[11]

Release Dates[edit]

Version Date Notes
3.0.0 2017-07-26 Release of the OpenAPI Specification 3.0.0
2.0 2014-09-08 Release of Swagger 2.0
1.2 2014-03-14 Initial release of the formal document
1.1 2012-08-22 Release of Swagger 1.1
1.0 2011-08-10 First release of the Swagger Specification

[12]

Usage[edit]

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.[13]

Features[edit]

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.[13]

Tools that work with OpenAPI[edit]

The OpenAPI Initiative maintains a list of implementations for version 3.0 of the specification. Unofficial lists also exist.

SmartBear still brands their 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.[13]

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 OpenAPI Generator under the OpenAPI Tools organization.[14] [15]

Microsoft Visual Studio Code supports OpenAPI version 2.0 and 3.0 with a custom extension.

See also[edit]

References[edit]

  1. ^ "Linux Foundation wants to extend Swagger in connected buildings | Business Cloud News". Retrieved 22 April 2016.
  2. ^ https://openapis.org/governance
  3. ^ "Swagger creator joins SmartBear". Retrieved 6 August 2019.
  4. ^ "SmartBear Assumes Sponsorship of Swagger API Open Source Project". SmartBear. Retrieved 25 March 2015.
  5. ^ "SmartBear, Linux Foundation launch Open API Initiative to Evolve Swagger". ProgrammableWeb. 10 November 2015. Retrieved 21 April 2016.
  6. ^ "New Collaborative Project to Extend Swagger Specification for Building Connected Applications and Services". www.linuxfoundation.org. Archived from the original on 27 April 2016. Retrieved 22 April 2016.
  7. ^ Montcheuil, Yves de. "In 2016, the need for an API meta-language will crystallize". InfoWorld. Retrieved 25 April 2016.
  8. ^ "Amazon API Gateway Now Supports Swagger Definition Import". InfoQ. Retrieved 25 April 2016.
  9. ^ "Swagger wins the 2016 API Award for API Infrastructure". Swagger Blog. Retrieved 27 July 2018.
  10. ^ "The OAI Announces the OpenAPI Specification 3.0.0". OpenAPIs. Retrieved 19 April 2018.
  11. ^ "The HTTP API space is Consolidating around OAS". InfoQ. Retrieved 14 May 2017.
  12. ^ "OpenAPI Specification Version 3.0.0". Retrieved 6 August 2019.
  13. ^ a b c "swagger-api/swagger-spec". GitHub. Retrieved 1 December 2015.
  14. ^ "Swagger Codegen is now OpenAPI Generator". Retrieved 6 August 2019.
  15. ^ "Swagger Codegen Fork: Q&A". Retrieved 6 August 2019.

Bibliography[edit]

  • Haupt, F.; Karastoyanova, D.; Leymann, F.; Schroth, B. (2014). A Model-Driven Approach for REST Compliant Services. ICWS 2014. 2014 IEEE International Conference on Web Services. pp. 129–136. doi:10.1109/ICWS.2014.30. ISBN 978-1-4799-5054-6.

External links[edit]