OpenAPI Specification: Difference between revisions

Content deleted Content added
AnomieBOT (talk | contribs)
Rescuing orphaned refs ("git" from rev 1241887081)
Fix reference I broke. More consistent terminology, update references, delete stale links. Remove promotional-sounding text about Swagger's current offerings as only its historical role in the specification is relevant. Remove everything about "The OpenAPI Tools Organization" which is not in any way part of to the OpenAPI Initiative.
Line 28:
| website = {{URL|https://openapis.org}}
}}
The '''OpenAPI Specification''', previously known as the '''Swagger Specification''', is a [[Specification (technical standard)|specification]] for a [[Machine-readable medium|machine-readable]] [[interface definition language]] for describing, producing, consuming and visualizing [[Web API|web services]].<ref name=started>{{cite web |title=OpenAPI Documentation: Getting Started |website=Learn OpenAPI |url=https://learn.openapis.org/ |publisher=The OpenAPI Initiative |access-date=2024-09-17}}</ref> Previously part of the [[Swagger (software)|Swagger]] framework, it became a separate project in 2015, overseen by the OpenAPI Initiative, an open-source collaboration project of the [[Linux Foundation]].<ref>{{Cite web|url=https://www.linuxfoundation.org/press/press-release/new-collaborative-project-to-extend-swagger-specification-for-building-connected-applications-and-services|title=New Collaborative Project to Extend Swagger Specification for Building Connected Applications and Services|archive-url=https://web.archive.org/web/20231031170437/https://www.linuxfoundation.org/press/press-release/new-collaborative-project-to-extend-swagger-specification-for-building-connected-applications-and-services|archive-date=31 October 2023}}</ref> Previously part of the [[Swagger (software)|Swagger]] framework, it became a separate project in 2015, overseen by the OpenAPI Initiative, an open-source collaboration project of the [[Linux Foundation]].<ref name="charter">{{cite web |title=OpenAPI Initiative Charter |url=https://www.openapis.org/participate/how-to-contribute/governance |website=OpenAPI Initiative |access-date=12 November 2019}}</ref>
 
An OpenAPI documentDescription (OAD)<ref name=glossary>{{cite web|title=OpenAPI Documentation: Glossary |website=Learn OpenAPI |url=https://learn.openapis.org/glossary.html |publisher=The OpenAPI Initiative |date=2023 |access-date=2024-09-17}}</ref> represents a formal description of an API that tools can use to generate code, documentation, test cases, and more.
 
==History==
Line 77:
 
==Usage==
The OAS describes the format for OpenAPI Descriptions (OADs),<ref>{{cite web|titlename=OpenAPI Documentation: Glossary |website=Learn OpenAPI |url=https://learn.openapis.org/glossary.html |publisher=The OpenAPI Initiative |date=2023 |access-date=2024-09-17}}</ref> which can be used by a variety of applications, libraries, and tools.
 
Applications can use OADs to automatically generate documentation of methods, parameters and [[data model]]s. This helps keep the [[Software documentation|documentation]], client libraries and source code in sync.<ref>{{cite web|title=OpenAPI Documentation: Introduction |website=Learn OpenAPI |url=https://learn.openapis.org/introduction.html |publisher=The OpenAPI Initiative |date=2023 |access-date=2024-09-17}}</ref>
 
When an OpenAPI documentOAD is used to generate source code stubs for servers, the process is called [[Scaffold (programming)|scaffolding]].
 
===Relationships to software engineering practices===
Line 87:
 
==Features==
The OpenAPI Specification is language-agnostic. With OpenAPI's [[Declarative programming|declarative]] resource specification, clients can understand and consume services without knowledge of server implementation or access to the server code.<ref name=git>{{Citestarted web|title = swagger-api/swagger-spec|url=https://github.com/swagger-api/swagger-spec/wiki|website = GitHub|access-date = 2015-12-01 |url-status=deviated |archive-url=https://archive.today/20160604140815/https://github.com/OAI/OpenAPI-Specification/wiki |archive-date= 4 Jun 2016 }}</ref>
 
==Tools that work with OpenAPI==
The OpenAPI Initiative maintains a list of implementations for version 3.0 of the specification.<ref>{{cite SmartBearweb|title=OpenAPI stillTooling brands|website=OpenAPI its OpenAPITooling |url=https://tools with the Swagger moniker.openapis.org/ The Swagger UI framework allows both developers and non|access-developersdate=2024-09-17 to|publisher=The interactOpenAPI 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]].Initiative}}</ref name="git" />
 
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 [[Fork (software development)|forked]] the code into a project named OpenAPI Generator under the OpenAPI Tools organization.<ref>{{cite news|url=https://angular.schule/blog/2018-06-swagger-codegen-is-now-openapi-generator |first1=Johannes |last1=Hoppe |date=2018 |website=Angular.Schule |title=Swagger Codegen is now OpenAPI Generator|access-date=August 6, 2019}}</ref><ref>{{cite news|url=https://openapi-generator.tech/docs/fork-qna |website=OpenAPI Generator |title=Swagger Codegen Fork: Q&A|access-date=August 6, 2019}}</ref>
 
==Annual conference==
Line 114 ⟶ 112:
* [https://openapis.org/ OpenAPI Initiative (OAI) website]
* [https://events.linuxfoundation.org/openapi-asc/ API Specifications Conference (ASC) website]
* [http://swagger.io Swagger website]
* [https://github.com/OAI/OpenAPI-Specification OpenAPI Specification on GitHub]
* [https://github.com/APIs-guru/openapi-directory/ Directory of OpenAPI definitionsDescriptions]
* [https://learn.openapis.org/examples/ Example OpenAPI Descriptions on the OAI's official Learn OpenAPIs site]
* [https://marketplace.eclipse.org/content/openapi-studio-rich-oas3-editor OpenAPI Editor: A rich UI Eclipse OpenAPI (OAS) editor and studio to design, develop and test OAS3/OpenAPI]
* [https://docs.edination.com/hc/en-gb/articles/360012871880-OpenAPI-EDI-Extensions OpenAPI for EDI] the [[Electronic data interchange]]
* [https://raw.githubusercontent.com/openapitools/openapi-generator/master/modules/openapi-generator/src/test/resources/3_0/petstore.yaml Example of a Petstore client/server specification.]
 
{{Use dmy dates|date=April 2019}}