Swagger Logo

Eine Einführung in OpenAPI und Swagger

Erik Seifried | HTL Leonding

Referat Ablauf

Einführung: Was ist eine API?

Der Vertrag zwischen zwei Systemen:

Eine API (Application Programming Interface) ist wie ein Vertrag zwischen 2 (oder mehreren) Systemen. Sie legt fest, wie die Systeme miteinander kommunizieren und welche Informationen ausgetauscht werden.

Restaurant Beispiel:

Restaurant
  • Die API sorgt dafür, dass der Austausch von Informationen standardisiert abläuft.

  • Das bedeutet, dass die Informationen in einem festgelegten Format JSON oder YAML übermittelt werden.

  • Im Restaurant-Beispiel könnte man dies mit der Sprache vergleichen, die alle Beteiligten Sprechen (Annahme: Alle sprechen Englisch).

Was ist OpenAPI und welche Alternativen gibt es?

OpenAPI Initiative

OpenAPI im Überblick:

  • OpenAPI ist ein Standard zur Beschreibung von Programmierschnittstellen

  • Früher bekannt als "Swagger"

Swag Ausdruck
OpenAPI LinuxFoundation
TimeLine

Alternativen zu OpenAPI (2 Beispiele):

  • RAML (RESTful API Modeling Language):
    RAML wurde 2013 von MuleSoft entwickelt.
    YAML-basiert Open Source
    Mulesoft: 2006 gegründet, San Francisco, Kalifornien

Beispiel:

RAML

  • API Blueprint API Blueprint wurde 2013 von Apiary entwickelt.
    Markdown-basiert
    Open Source

Beispiel: API Blueprint

Welches Problem löst OpenAPI?

Welches Problem löst OpenAPI

Wenn man eine REST-API hat kann niemand zu diesem Server hingehen und fragen: "Was kannst du eigentlich?".

  • Welche Endpunkte gibt es?

  • Welche HTTP-Methoden (GET, POST, PUT, DELETE) kann ich nutzen?

  • Welche Datenformate (JSOn, XML) werden erwartet?

  • Welche Parameter werden benötigt (Query-Parameter, Path-Parameter, Body)?

  • Welche Antwort bekomme ich zurück?

Genau dieses Problem löst OpenAPI:

2 Möglichkeiten

Schnittstllendokumentation mit der Swagger UI

  • Swagger UI ermöglicht es die API-Ressourcen zu visualisieren und mit ihnen zu interagieren.

  • Implementierungslogik muss nicht vorhanden sein

  • Dokumentation kann automatisch aus der OpenAPI-Spezifikation (YAML-File) generiert werden

Wie sieht die Swagger UI aus?

PetStore UI 1
PetStore UI 2
PetStore UI 3

Schnittstellendokumentation mit der Swagger UI und einer bestehenden Resource

1. OpenAPI-Abhängigkeit in pom.xml hinzufügen

OpenAPI pom xml

2. Resource erstellen

VehicleResource

3. Swagger UI aufrufen

VehicleSwaggerUI

Resource Interface mit Quarkiverse Server Generator erstellen

Quarkus and OpenAPI Generator

1. Quarkiverse Server Generator Dependency hinzufügen

quarkiverse server generator dependency

2. OpenAPI Spezifikationsfile (YAML) erstellen

Fruits OpenAPI File Intellij API Übersicht

3. Plugin in pom.xml hinzufügen

plugin

4. FruitsResource Interface aus dem Quarkiverse Generator erstellen

generate interface

5. Target-Ordner mit generierten Klassen

target folder

6. Verwendung des FruitsResource Interface

FruitsResource

Quellen