
BTP - Testen mit Swagger
Du hast gerade dein Service Binding in ABAP vom Typ Web API erstellt und willst nicht mit dem Postman testen? Hast du dir schon Swagger angeschaut, was nun Out-of-the-Box funktioniert?
Inhaltsverzeichnis
In diesem Artikel schauen wir uns einmal das Testen mit Swagger an und wie du damit auch verschiedene Testszenarien abbilden kannst und dabei etwas Zeit sparst.
Einleitung
Mit Swagger erhältst du eine standardisierte Schnittstellenbeschreibung für eine OData API und kannst mit Hilfe der Software auch gleich die Funktionen testen. Dabei benötigst du keine zusätzliche Software installieren, sondern kannst direkt mit dem Service starten.
Start
Um Swagger auszuführen, benötigst du ein System mit dem passenden Release. In der BTP wurde das Feature mit dem Release 2505 eingeführt, war dann aber nicht vollständig nutzbar, da es Probleme bei der Generierung von X-CSRF-Token gab. Um nun die UI zu starten, benötigst du einen OData Service vom Typ "Web API", in diesem Fall arbeiten wir im ABAP Environment. In diesem Beispiel verwenden wir die API aus diesem Artikel, um das UI zu testen. Im Service Binding findest du den "Test" Button um Swagger zu starten.
Nach dem Laden der UI im Browser erhältst du die typische Übersicht der Entitäten und Möglichkeiten, die der Service uns gibt. Eine Entität für die administrativen Daten, dann der Partner als Hauptentität mit allen Möglichkeiten. Dann die verschiedenen Aktionen und das Draft Handling der Entität. Zum Abschluss findest du dann noch die Wertehilfe für Städte und statische Aktionen des Services. So siehst du auch auf einen Blick, welche Aktionen für die jeweilige Entität aktiviert und nutzbar sind.
Aufbau
Bevor wir die ersten Interaktionen durchführen, schauen wir uns erst einmal das UI an. Klappen wir das die GET Methode für Partner auf. Hier erhalten wir eine Übersicht der verschiedenen Parameter die wir zum Beispiel beim Aufruf verwenden können. Hier findest du eigentlich alle für den Aufruf des Endpunkts.
Wenn wir etwas weiter unten schauen, dann findest du den Antwort-Teil, um zu sehen, wie der Service auf eine Anfrage antworten wird. Hier siehst du auch, was in einem Fehlerfall zurückgegeben wird.
Lesen
Im Moment ist noch die UI gesperrt und wir können die verschiedenen Felder nicht ändern. Um nun in die Bearbeitung zu gehen, musst du den Button "Try it out" drücken. Damit öffnen sich die Felder und der "Execute" Button wird eingeblendet.
Setzen wir dazu den Filter auf alle Partner aus Deutschland (DE), hier musst du auf jeden Fall auf die Groß- und Kleinschreibung des Filters achten. Dann schränken wir die Felder ein und lassen uns nur die Partnernummer, den Namen und das Land zurückgeben, um gleich das Ergebnis zu validieren.
Im Ergebnis erhalten wir mehrere Informationen. Zuerst einmal der CURL und die URL die aufgerufen wird, im Anschluss dann die Antwort des Services und darunter die Header Felder, diese haben wir allerdings nicht eingeblendet. Insgesamt erhalten wir 2 Datensätze zurück.
Erzeugen
Wechseln wir für die Erzeugung in den entsprechenden Modus. As Vorlage erhalten wir bereits die Payload mit vielen Platzhaltern. Daher können wir hier noch das JSON mit unseren Daten befüllen und sind dann bereit zur Anlage.
Hier findest du noch einmal die verwendete Payload. Neben den eigentlichen Feldern befüllen wir auch das Kennzeichen "IsActiveEntity". Setzen wir den Wert auf True, dann wird kein Draft angelegt, sondern die Entität direkt aktiviert und die komplette Logik durchlaufen. Danke an Marian Zeis für den kleinen Tipp.
{
"PartnerName": "Swagger Test Company",
"Street": "Swagger Street 2",
"City": "Berlin",
"Country": "DE",
"PaymentCurrency": "EUR",
"IsActiveEntity": true
}
Führen wir nun die Anfrage aus, dann übernimmt Swagger für uns das Token Handling und im Ergebnis sehen wir auch direkt die neue Partnernummer, die vom System automatisch vergeben wurde. Ebenfalls erhältst du auch Informationen zum verwendeten CURL, der URL und dem Repsonse Code.
Schauen wir uns nun die Tabelle auf der Datenbank an, dann ist der Datensatz ebenfalls hier zu sehen. Die Swagger API hat damit den Datensatz im System erzeugt.
Fazit
Benötigst du noch Postman, um die Web API zu testen? Für komplexe Abläufe sehr wahrscheinlich, aber für einfache Tests und Aktionen kann bereits Swagger eine große Unterstützung sein. Vor allem, wenn du als Anfänger noch nicht so vertraut mit dem Handling der Token bist.