OpenAPI

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]

Geschichte

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]

Werkzeuge

Hauptartikel: Swagger (Software)

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]

Literatur

  • 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]). 
  • openapis.org – Offizielle Website der OpenAPI Initiative
  • OpenAPI auf GitHub

Beispiele:

  • petstore.swagger.io – fiktiver Server zur Demonstration von OpenAPI
  • hub.apitree.com – Öffentliches Verzeichnis von OpenAPI-Projekten mit interaktiven Beispielen
  • github.com/… – OpenAPI Dokumente in .NET

Einzelnachweise

  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.