OpenAPI Specification: Difference between revisions

Content deleted Content added
top: +logo image
Rescuing 1 sources and tagging 0 as dead.) #IABot (v2.0.9.5
 
(4 intermediate revisions by 4 users not shown)
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> Originally developed to support 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><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 |archive-date=26 January 2025 |archive-url=https://web.archive.org/web/20250126133749/https://www.openapis.org/participate/how-to-contribute/governance |url-status=dead }}</ref>
 
An OpenAPI Description (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==
[[File:OpenAPI Logo Pantone.svg|thumb|Logo of the OpenAPI Initiative, the organization that develops the OpenAPI specification under the [[Linux Foundation]]]]
[[Swagger (software)|Swagger]] development began in early 2010 by Tony Tam, who was working at online dictionary company [[Wordnik]].<ref>{{cite web|url=https://sdtimes.com/apis/swagger-creator-joins-smartbear/|title=Swagger creator joins SmartBear|date=28 September 2015 |access-date=August 6, 2019}}</ref>
 
Line 56 ⟶ 57:
|-
! Version !! Date !! Notes<ref>{{cite web|url=https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.1.0.md |website=GitHub |title=OpenAPI Specification Version 3.1.0|access-date=November 7, 2023}}</ref>
|-
|3.1.1
|2024-10-24
|Patch release of the OpenAPI Specification 3.1.1
|-
| 3.1.0 || 2021-02-15 || Release of the OpenAPI Specification 3.1.0
|-
|3.0.4
|2024-10-24
|Patch release of the OpenAPI Specification 3.0.4
|-
|3.0.3
Line 90 ⟶ 99:
 
===Relationships to software engineering practices===
The paradigm of agreeing on an API contract first and then programming business logic afterwards, in contrast to coding the program first and then writing a retrospective description of its behavior as the contract, is called contract-first development. Since the interface is determined before any code is written, downstream developers can [[Mock object|mock]] the [[Server (computing)|server]] behavior and start testing right away.<ref>{{Cite book |last=Preibisch |first=Sascha |url=https://www.worldcat.org/oclc/1076234393 |publisher=Apress |title=API Development: A Practical Guide for Business Implementation Success |date=2018 |isbn=978-1-4842-4140-0 |___location=[Berkeley, CA] |oclc=1076234393 |quote=Having the Swagger (or for that matter, any other machine-readable) document available, team members can start working on their part of the project at the same time.}}</ref> In this sense, contract-first development is also a practice of [[shift-left testing]].
 
==Features==
Line 128 ⟶ 137:
[[Category:Application programming interfaces]]
[[Category:Markup languages]]
[[Category:JSON]]