Requests über die integrierte Swagger UI senden

Die REST-Schnittstelle des Entry-Programms zur Entgegennahme von Anfragen an die generierte Anwendung ist standardmäßig unter Port 9997 erreichbar. Das Programm entält eine HTML-Oberfläche in Form einer Swagger UI, die Sie verwenden können, um Anfragen an die Anwendung zu senden. Im Folgenden wird schrittweise beschrieben, wie Sie dabei vorgehen können.

Schritt 1: Die Swagger UI der generierten Anwendung aufrufen

Die Swagger UI kann lokal mit der folgenden URL im Web-Browser aufgerufen werden:

Anmerkungen:

Im Weiteren wird auf die Beispielanwendung für den Getränkeautomaten mit dem Namen BeverageVending zurückgegriffen, deren Erstellung im Abschnitt Ein Service-Projekt auf Basis eines DEA erstellen beschrieben wird.

Die Ein- und Ausgabedaten sowie die Screenshots stellen den Ablauf dar, wie er für diese Beispielanwendung aussehen würde. Die Vorgehensweise kann aber analog auf andere Beispiele oder eigene Anwendungen übertragen werden.

Hier wird nur die Verwendung der Swagger UI zum Senden von Anfragen an Anwendungen, die mit der Container-Automat Factory generiert wurden, erläutert. Für weitergehende Informationen zur Swagger UI sei auf die Quellen im Internet verwiesen. [1]

Folgende Abbildung zeigt die Swagger UI der Beispielanwendung im Ausgangszustand.

SwaggerUI Startzustand

Schritt 2: Die Detailansicht der POST-Operation für /requests öffnen

Generell kann eine Swagger UI unterschiedliche REST-Operationen für diverse Ressourcen zur Verfügung stellen. Im vorliegenden Fall ist nur die POST-Operation zum Anlegen von Requests verfügbar.

Auswahl der REST-Operation

Klicken Sie auf die grün hinterlegte Zeile mit der Beschriftung POST /requests, um die Detailansicht der POST-Operation zu öffnen, die in der folgenden Abbildung dargsestellt ist.

POST Request Detailansicht

Oben, im Bereich Request body werden unter der Überschrift Example Value die JSON-Daten eines möglichen Requests angezeigt. Dabei handelt es sich um formal zulässige Werte, die aus der Spezifkation der REST API hergeleitet werden. Der für input angegebene Eingabstring wird bspw. zufällig auf Basis der zulässigen Werte erzeugt. Es muss sich also nicht um eine sinnvolle Eingabe handeln, in dem Sinne, dass sich der DEA nach der Verarbeitung in einem akzeptierenden Endzustand befindet.

Unten, im Bereich Responses wird unter der Überschrift Example Value ein Beispiel für ein mögliches Ergebnis angezeigt. Auch hier mit rein formal möglichen Werten auf Basis der Spezifikation der REST API.

Um konkrete Daten für einen Request angeben zu können, klicken Sie oben rechts auf den Button mit der Beschriftung Try it out.

Button 'Try it out'

Daraufhin wird der Bereich mit dem JSON-Beispiel durch ein mehrzeiliges Textfeld ersetzt, in das ein Request im JSON-Format eingegeben werden kann.

Schritt 3: Einen Request im JSON-Format angeben und senden

Der Beispiel-Request für den Kauf eines Getränks

Der Wert SPR für das Element input im folgenden JSON-Request entspricht den Eingabesymbolen für den DEA, auf dem die Beispielanwendung basiert, um einen einzelnen Getränkekauf durchzuführen. (Ein Zustandsdiagramm und die Definition des DEA für den Getränkeautomaten finden Sie im Abschnitt Ein Getränkeautomat als Beispiel.)

{
  "description": "Test-Request 1: Selection, Payment, Removal.",
  "input": "SPR"
}
  • S für Selection (Getränkewahl)

  • P für Payment (Zahlung)

  • R für Removal (Getränkeentnahme)

Nachdem die JSON-Daten im Textfeld Request body eingegeben wurden, kann der Request durch einen Klick auf den blauen Button Execute gesendet werden, wie in der folgenden Abbildung dargestellt.

JSON Beispiel-Request

Schritt 4: Das Ergebnis des Requests interpretieren

In Folge des Requests werden in der Swagger UI im Bereich Responses diverse Informationen ausgegeben. Die folgende Abbildung zeigt die Ergebnisse für den in Schritt 3 beschriebenen Request.

JSON Beispiel-Response
  • Curl: Hier werden die Parameter angezeigt, die einen ensprechenden Request bei Verwendung von curl auslösen würden. [2]

  • Request URL: Die URL, an die der REST-Request tatsächlich gesendet wurde.

  • Code: Der HTTP Status-Code der Response. Hier 200 für die erfolgreiche Verarbeitung.

  • Response body: Die Nutzlast der Response, sozusagen das eigentliche, anwendungspezifische Ergebnis.

  • Response headers: Die HTTP Header der Response.

Die Daten aus dem Response body als Verarbeitungsinstanz

Im Rahmen der Annahme eines Requests erzeugt das Entry-Programm einen Verarbeitungsinstanz-Datensatz, der die Daten des Requests, den Zeitpunkt der Erzeugung und eine ID enthält. Durch die ID sind Nachrichten, Ereignisse und weitere Datensätze, die im Verlauf der Verarbeitung erzeugt werden, miteinander verknüpft.

Der Datensatz wird in der Datenbank der Anwendung dauerhaft gespeichert und unmittelbar als Ergebnis des POST-Requests an den Aufrufer geliefert.

{
  "processingInstanceId": "2d47caed-f271-4ffe-ad76-33d67d7ca3ec", (1)
  "creationTime": "2024-08-18T18:24:38.984104390Z", (2)
  "input": "SPR", (3)
  "description": "Test-Request 1: Selection, Payment, Removal." (4)
}
  1. Die automatisch erzeugte ID des Verarbeitungsdatensatzes.

  2. Der Zeitstempel der Erzeugung.

  3. Der mit dem Request übergebene Eingabestring.

  4. Die mit dem Request übergebene Beschreibung.


1. Allgemeine Informationen zur Swagger UI finden Sie auf der Swagger Website unter der URL https://swagger.io/tools/swagger-ui/ und detaillierte Dokumentation zur Swagger UI bei GitHub unter folgender URL: https://github.com/swagger-api/swagger-ui
2. Dokumentation zu curl finden Sie auf der CURL-Website unter folgender URL: https://curl.se/docs/