Zum Inhalt springen

„OpenAPI“ – Versionsunterschied

aus Wikipedia, der freien Enzyklopädie
[gesichtete Version][gesichtete Version]
Inhalt gelöscht Inhalt hinzugefügt
Kapitel Beispiele sollte Inhalte als Wikipedia-Content zeigen; daher diese zwei Weblinks in Kapitel Weblinks verschoben
Reja18 (Diskussion | Beiträge)
K Kommata eingefügt
Markierungen: Visuelle Bearbeitung Mobile Bearbeitung Mobile Web-Bearbeitung
 
(18 dazwischenliegende Versionen von 13 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
Die '''OpenAPI Specification''' (OAS) ist eine quelloffene, herstellerunabhängige Spezifikation innerhalb der '''OpenAPI Initiative''' und ein Projekt der [[Linux Foundation]]. OAS definiert einen programmiersprachen-unabhängigen Standard zur Beschreibung von [[Hypertext Transfer Protocol|HTTP]]-[[Programmierschnittstelle|Programmierschnittstellen (APIs)]]. Dies soll sowohl Menschen als auch Maschinen ermöglichen, die Möglichkeiten einer Schnittstelle zu entdecken und zu verstehen, ohne die Notwendigkeit auf zusätzliche Dokumentation, [[Quelltext|Quellcode]] oder Analyse von Netzwerkverkehr zurückzugreifen. Der Nutzer der API soll damit in die Lage versetzt werden, mit minimalem Implementierungsaufwand mit der Schnittstelle zu interagieren.
Die '''OpenAPI Specification''' (vormals ''Swagger Specification'') ist ein Standard zur Beschreibung von [[Representational State Transfer|REST]]-konformen [[Programmierschnittstelle|Programmierschnittstellen (API)]].<ref>{{Internetquelle |url=https://github.com/OAI/OpenAPI-Specification |titel=OpenAPI-Specification auf GitHub |abruf=2019-12-30}}</ref>

Gefördert wird die Spezifikation von der '''OpenAPI Initiative'''. Die Initiative verfolgt die Vision, im Sinne einer vernetzten Welt ein offenes und herstellerneutrales Beschreibungsformat für API-Dienste bereitzustellen.<ref>{{Internetquelle |url=https://www.openapis.org/about |titel=Über die OpenAPI Initiative |abruf=2019-12-30}}</ref> Das Projekt wird von der [[Linux Foundation]] unterstützt.<ref>{{Internetquelle |url=https://www.linuxfoundation.org/projects/ |titel=Projekte der Linux Foundation |abruf=2019-12-30}}</ref>
Anwendungsbeispiele sind interaktive Dokumentationen, Code-Generierung und Test-Automatisierung.

OAS erfordert keine Änderungen an existierenden APIs, die Beschreibung muss nicht zwingend vom Ersteller der API zur Verfügung gestellt werden. Es können allerdings nicht alle Arten von HTTP-Schnittstellen mit OAS beschrieben werden. [[Representational State Transfer|REST]]-konforme Schnittstellen werden unterstützt.<ref>{{Internetquelle |url=https://github.com/OAI/OpenAPI-Specification/tree/main |titel=OAI/OpenAPI-Specification |hrsg=OpenAPI Initiative |datum=2024-09-13 |abruf=2024-09-13}}</ref> Für asynchrone API-Kommunikation mit unterschiedlichen Transportprotokollen ist [[AsyncAPI]] als Beschreibungsstandard entstanden, der sich am OpenAPI-Konzept anlehnt.<ref name="heise-2022-12-16" />


== Geschichte ==
== Geschichte ==
Die OpenAPI-Specification begann als Teil des Softwareprojekts [[Swagger (Software)|Swagger]], einem [[Open Source|Open-Source]]-[[Framework]] für [[HTTP]]-[[Webservice]]s. Im Jahr 2016 wurde sie ein eigenständiges Projekt, das von der ''OpenAPI Initiative'' verwaltet wird, zu deren Mitgliedern Unternehmen wie [[Atlassian]], [[Google]], [[IBM]], [[Microsoft]], [[PayPal]] und [[SAP]] zählen.<ref>{{Internetquelle |url=https://www.openapis.org/membership/members |titel=Mitglieder der OpenAPI Initiative |abruf=2019-12-30}}</ref>
Die OpenAPI-Specification begann als Teil des Softwareprojekts [[Swagger (Software)|Swagger]], einem [[Open Source|Open-Source]]-[[Framework]] für [[HTTP]]-[[Webservice]]s. Im Jahr 2016 wurde sie ein eigenständiges Projekt, das von der ''OpenAPI Initiative'' verwaltet wird, zu deren Mitgliedern Unternehmen wie [[Atlassian]], [[Google LLC|Google]], [[IBM]], [[Microsoft]], [[PayPal]] und [[SAP]] zählen.<ref>{{Internetquelle |url=https://www.openapis.org/membership/members |titel=Mitglieder der OpenAPI Initiative |abruf=2019-12-30}}</ref>


Die aktuelle Version der OpenAPI-Specification ist 3.0.2.<ref>{{Internetquelle |url=https://github.com/OAI/OpenAPI-Specification/releases |titel=Releases der OpenAPI-Specification |abruf=2019-12-30}}</ref><ref>{{Internetquelle |url=https://www.heise.de/developer/meldung/OpenAPI-Initiative-aktualisiert-Schnittstellen-Spezifikation-3783469.html |titel=OpenAPI-Initiative aktualisiert Schnittstellen-Spezifikation |datum=2017-07-26 |abruf=2019-12-30}}</ref>
Die aktuelle Version der OpenAPI-Specification ist 3.1.0.<ref>{{Internetquelle |url=https://github.com/OAI/OpenAPI-Specification/releases |titel=Releases der OpenAPI-Specification |abruf=2020-09-24}}</ref>


== Werkzeuge ==
== Werkzeuge ==
{{Hauptartikel|Swagger (Software)}}
{{Hauptartikel|Swagger (Software)}}
Swagger bietet eine Sammlung von [[Open Source|Open-Source]]-Werkzeugen, um APIs zu entwickeln, die konform zur OpenAPI-Spezifikation sind:<ref>{{Internetquelle |url=https://swagger.io/tools/open-source/ |titel=OpenAPI Open-Source Werkzeuge |abruf=2019-12-30}}</ref>
Swagger bietet eine Sammlung von [[Open Source|Open-Source]]-Werkzeugen, um APIs zu entwickeln, die konform zur OpenAPI-Spezifikation sind:<ref>{{Internetquelle |url=https://swagger.io/tools/open-source/ |titel=OpenAPI Open-Source Werkzeuge |abruf=2019-12-30}}</ref>

* ''Swagger Editor'' unterstützt beim Erzeugen der API-Definition
; Swagger Editor
* ''Swagger Codegen'' generiert Server [[Stub (Programmierung)|Stubs]] und Client SDKs
: unterstützt beim Erzeugen der API-Definition
* ''Swagger UI'' erzeugt Dokumentation
; Swagger Codegen
: generiert Server [[Stub (Programmierung)|Stubs]] und Client SDKs
; Swagger UI
: erzeugt Dokumentation

Daneben existieren auch kostenpflichtige Werkzeuge:
Daneben existieren auch kostenpflichtige Werkzeuge:
* ''SwaggerHub'' für Kollaboration
; SwaggerHub
: für Kollaboration
* ''SwaggerHub Enterprise'' für Unternehmen, verfügbar in der Cloud oder On-Premises
; SwaggerHub Enterprise
: für Unternehmen, verfügbar in der Cloud oder On-Premises
* ''Swagger Inspector'' für Testzwecke
; Swagger Inspector
: für Testzwecke
; APITree
* ''APITree'' wandelt OpenAPI-Spezifikationen 2.0 und 3.0 in menschenlesbare API-Dokumentationen um, die über einen HUB kostenlos in der Cloud verwaltet und geteilt werden können.
: wandelt OpenAPI-Spezifikationen 2.0 und 3.0 in menschenlesbare API-Dokumentationen um, die über einen HUB kostenlos in der Cloud verwaltet und geteilt werden können.


Auch für verschiedene Entwicklungsumgebungen existieren Erweiterungen zur Unterstützung von OpenAPI.<ref>{{Internetquelle |url=https://marketplace.visualstudio.com/items?itemName=42Crunch.vscode-openapi |titel=OpenAPI-Editor für Visual Studio Code |abruf=2019-12-30}}</ref><ref>{{Internetquelle |url=https://marketplace.eclipse.org/search/site/OpenAPI |titel=OpenAPI-Tools für Eclipse |abruf=2019-12-30}}</ref>
Auch für verschiedene Entwicklungsumgebungen existieren Erweiterungen zur Unterstützung von OpenAPI.<ref>{{Internetquelle |url=https://marketplace.visualstudio.com/items?itemName=42Crunch.vscode-openapi |titel=OpenAPI-Editor für Visual Studio Code |abruf=2019-12-30}}</ref><ref>{{Internetquelle |url=https://marketplace.eclipse.org/search/site/OpenAPI |titel=OpenAPI-Tools für Eclipse |abruf=2019-12-30}}</ref>


== Literatur ==
== Literatur ==
* {{Literatur
| Autor=Stefan Sauterleute, Michael Heiß, Christopher Köster
| Titel=Einstieg in OpenAPI v3: REST wird erwachsen
| Sammelwerk=Entwickler Magazin
| Nummer=1
| Datum=2018
| Seiten=?
| Online=https://kiosk.entwickler.de/entwickler-magazin/entwickler-magazin-1-2018/einstieg-in-openapi-v3/
| Kommentar=[https://entwickler.de/online/development/einstieg-in-openapi-v3-579830417.html Kostenlose Onlineversion]
| Abruf=2020-02-24
}}

* {{Literatur
* {{Literatur
| Autor=Manuel Ottlik
| Autor=Manuel Ottlik
Zeile 37: Zeile 61:
* [https://www.openapis.org openapis.org] – Offizielle Website der OpenAPI Initiative
* [https://www.openapis.org openapis.org] – Offizielle Website der OpenAPI Initiative
* {{GitHub|OAI/OpenAPI-Specification}}
* {{GitHub|OAI/OpenAPI-Specification}}
* [https://entwickler.de/online/development/einstieg-in-openapi-v3-579830417.html Einstieg in OpenAPI v3: REST wird erwachsen]


;Beispiele:
'''Beispiele:'''
* [http://petstore.swagger.io/ petstore.swagger.io] – fiktiver Server zur Demonstration von OpenAPI
* [https://petstore.swagger.io/ petstore.swagger.io] – fiktiver Server zur Demonstration von OpenAPI
* [https://hub.apitree.com hub.apitree.com] – Öffentliches Verzeichnis von OpenAPI-Projekten mit interaktiven Bespielen
* [https://hub.apitree.com hub.apitree.com] – Öffentliches Verzeichnis von OpenAPI-Projekten mit interaktiven Beispielen
* [https://github.com/microsoft/OpenAPI.NET github.com/…] – OpenAPI Dokumente in .NET
* [https://github.com/microsoft/OpenAPI.NET github.com/…] – OpenAPI Dokumente in .NET


== Einzelnachweise ==
== Einzelnachweise ==
<references />
<references>

<ref name="heise-2022-12-16">{{Heise online |ID=7396398 |Titel=AsyncAPI: Asynchrone Kommunikation für IoT und Microservices meistern |Autor=Thilo Frotscher |Datum=2022-12-16 |Abruf=2022-12-18}}</ref>

</references>

[[Kategorie:Softwarearchitektur]]
[[Kategorie:Softwarearchitektur]]
[[Kategorie:Webservice]]
[[Kategorie:Webservice]]

Aktuelle Version vom 28. November 2024, 11:39 Uhr

Die OpenAPI Specification (OAS) ist eine quelloffene, herstellerunabhängige Spezifikation innerhalb der OpenAPI Initiative und ein Projekt der Linux Foundation. OAS definiert einen programmiersprachen-unabhängigen Standard zur Beschreibung von HTTP-Programmierschnittstellen (APIs). Dies soll sowohl Menschen als auch Maschinen ermöglichen, die Möglichkeiten einer Schnittstelle zu entdecken und zu verstehen, ohne die Notwendigkeit auf zusätzliche Dokumentation, Quellcode oder Analyse von Netzwerkverkehr zurückzugreifen. Der Nutzer der API soll damit in die Lage versetzt werden, mit minimalem Implementierungsaufwand mit der Schnittstelle zu interagieren.

Anwendungsbeispiele sind interaktive Dokumentationen, Code-Generierung und Test-Automatisierung.

OAS erfordert keine Änderungen an existierenden APIs, die Beschreibung muss nicht zwingend vom Ersteller der API zur Verfügung gestellt werden. Es können allerdings nicht alle Arten von HTTP-Schnittstellen mit OAS beschrieben werden. REST-konforme Schnittstellen werden unterstützt.[1] Für asynchrone API-Kommunikation mit unterschiedlichen Transportprotokollen ist AsyncAPI als Beschreibungsstandard entstanden, der sich am OpenAPI-Konzept anlehnt.[2]

Die OpenAPI-Specification begann als Teil des Softwareprojekts Swagger, einem Open-Source-Framework für HTTP-Webservices. Im Jahr 2016 wurde sie ein eigenständiges Projekt, das von der OpenAPI Initiative verwaltet wird, zu deren Mitgliedern Unternehmen wie Atlassian, Google, IBM, Microsoft, PayPal und SAP zählen.[3]

Die aktuelle Version der OpenAPI-Specification ist 3.1.0.[4]

Swagger bietet eine Sammlung von Open-Source-Werkzeugen, um APIs zu entwickeln, die konform zur OpenAPI-Spezifikation sind:[5]

Swagger Editor
unterstützt beim Erzeugen der API-Definition
Swagger Codegen
generiert Server Stubs und Client SDKs
Swagger UI
erzeugt Dokumentation

Daneben existieren auch kostenpflichtige Werkzeuge:

SwaggerHub
für Kollaboration
SwaggerHub Enterprise
für Unternehmen, verfügbar in der Cloud oder On-Premises
Swagger Inspector
für Testzwecke
APITree
wandelt OpenAPI-Spezifikationen 2.0 und 3.0 in menschenlesbare API-Dokumentationen um, die über einen HUB kostenlos in der Cloud verwaltet und geteilt werden können.

Auch für verschiedene Entwicklungsumgebungen existieren Erweiterungen zur Unterstützung von OpenAPI.[6][7]

  • Stefan Sauterleute, Michael Heiß, Christopher Köster: Einstieg in OpenAPI v3: REST wird erwachsen. In: Entwickler Magazin. Nr. 1, 2018, S. ? (entwickler.de [abgerufen am 24. Februar 2020] Kostenlose Onlineversion).
  • Manuel Ottlik: REST-APIs dokumentieren nach OpenAPI-Standard. In: c’t. Nr. 5, 2020, S. 136–139 (heise.de [abgerufen am 22. Februar 2020]).

Beispiele:

Einzelnachweise

[Bearbeiten | Quelltext bearbeiten]
  1. OAI/OpenAPI-Specification. OpenAPI Initiative, 13. September 2024, abgerufen am 13. September 2024.
  2. Thilo Frotscher: AsyncAPI: Asynchrone Kommunikation für IoT und Microservices meistern. In: Heise online. 16. Dezember 2022. Abgerufen am 18. Dezember 2022.
  3. Mitglieder der OpenAPI Initiative. Abgerufen am 30. Dezember 2019.
  4. Releases der OpenAPI-Specification. Abgerufen am 24. September 2020.
  5. OpenAPI Open-Source Werkzeuge. Abgerufen am 30. Dezember 2019.
  6. OpenAPI-Editor für Visual Studio Code. Abgerufen am 30. Dezember 2019.
  7. OpenAPI-Tools für Eclipse. Abgerufen am 30. Dezember 2019.