Kontakt & Service
Jetzt Beratung vereinbaren

In wenigen Schritten einen Beratungs­termin mit unseren Experten buchen.

Anwender Helpdesk

Hilfestellung bei Problemen in Ihren SAP-Systemen.

Schulungen

Unser Schulungsangebot. Jetzt informieren!

Webinare

Unser Webinarangebot. Jetzt informieren!

Custom API-Management in der BTP Cloud Foundry Environment

News & Wissen Kundenspezifisches SAP API Management in der Cloud Foundry-Umgebung der SAP BTP

Die SAP Integration Suite ist eine Enterprise Integration Platform as a Service (EiPaaS), die es erlaubt, Applikationen, Prozesse und Menschen einfach und schnell zu verbinden. Die SAP Integration Suite beinhaltet folgende Produkte bzw. Services: Open Connectors, Cloud Integration, Integration Advisor, Event Mesh und das SAP API Management. Wie man mit dem SAP API Management eine kundenindividuelle API erstellt und zwei Systeme miteinander verbindet, erfahren Sie hier.

Mit dem SAP API Management als Teil der SAP Integration Suite deckt die SAP diverse Anforderungen sowie komfortable Eigenschaften einer modernen Schnittstellenintegration ab.

Beispielhafter Einsatzzweck

In diesem Beispiel wird auf den praktischen Fall eingegangen, dass die verfügbaren Authentifizierungsmethoden zweier Schnittstellen nicht miteinander kompatibel sind.

Im Detail soll die Webhook API von Hubspot eine Instanz der SAP CI (Cloud Integration) aufrufen. Die SAP CI akzeptiert Basic Authentifizierung und OAuth 2.0. Hubspot liefert allerdings zur Verifizierung ein secret-basierten Hash, was die SAP CI nicht interpretieren kann.

Beispiel der Konfiguration

Genutzt wird die Cloud Foundry-Version des SAP API Managements.

SAP API Management konfigurieren

Um das SAP API Management einsetzen zu können, muss eine einmalige und initiale Konfiguration vorgenommen werden. Diese ist einfach und schnell zu erledigen. Besondere Aufmerksamkeit sollte auf den Punkt „Host Alias“ gelegt werden. Damit wird die Subdomain der neuen SAP API Management-Instanz festgelegt.

Die komplette URL wird direkt beispielhaft unter dem Eingabefeld dargestellt.

Im zweiten Schritt erscheint die Zusammenfassung des Vorgangs inklusive vieler hilfreicher und weiterführender Links:

Rollen zuweisen

Rollen, beziehungsweise „Role Collections“, die aus mehreren einzelnen Rollen bestehen können, werden im BTP Cockpit über Security => Users => <UserAuswaehlen> => Assign Role Collection hinzugefügt.

In unserem Fall sind drei Role Collections nötig, um das SAP API Management vollständig nutzen zu können:

API anlegen

Wir verwenden für dieses Beispiel das API Portal. Darin wollen wir die erste API erstellen. Ziel ist es, von Hubspot erreichbar zu sein (direkt innerhalb des Internets), den eingehenden Datenstrom zu verifizieren und anschließend an die CI weiterzuleiten. Das Vorhaben beinhaltet natürlich Änderungen an den eingegangenen Daten, um die Authentifizierung der CI erfolgreich passieren zu können.

Die Anlage erfolgt über: Develop => Create

Hier wird „URL“ bei dem Punkt „Select“ gewählt und die Zieladresse eingegeben. Es handelt sich um dieselbe Adresse, die sonst direkt zur Kommunikation mit der CI genutzt werden könnte.

Beispielsweise: https://YYYYY-iflmap.hcisbt.eu1.hana.ondemand.com/XXXXX

Innerhalb der API-Details kann der Name frei gewählt werden. Der Alias muss aber unbedingt mit dem Host aus der vorhergegangenen Konfiguration übereinstimmen. (Da wir bisher nur einen Host erstellt haben, ist auch nur einer wählbar.)

Der API Base Path ist der Knotenpunkt, unter dem die API von außen erreichbar ist.
Als Service Type wird REST gewählt.

Die gesamte URL zu dieser API ist damit beispielhaft:
https://YYYYY.apimanagement.eu10.hana.ondemand.com/test

Ergebnis

Policies

Policies bieten im SAP API Management alle möglichen Werkzeuge zur Verarbeitung der Daten. Sie sind unter „Develop“ oben rechts zu finden:

Policies lassen sich an den verschiedenen Punkten des Ablaufs der API hinterlegen:

  • ProxyEndpoint
  • TargetEndpoint

ProxyEndpoint definiert den (zeitlich) ersten Abschnitt nach dem Aufruf der API seitens des Clients. Daran anschließend ist der TargetEndpoint. Beide Bereiche werden vor dem ausgehenden Aufruf nacheinander durchlaufen.
Jeder dieser EndPoints ist seinerseits zusätzlich in PreFlow und PostFlow unterteilt.

Validierung

Da unser Anliegen aus der Validierung des Inhaltes besteht, macht es Sinn, diese so früh wie möglich durchzuführen. Wir wählen deshalb ProxyEndpoint => PreFlow.

In der Liste der verfügbaren Policies entscheiden wir uns unter „Extension Policies“ für „JavaScript“. Wir werden die Validierung selbst programmieren.

Wir benennen die eigentliche Datei „maincode.js“.

Den Code finden wir unter „Scripts“ auf der linken Seite:

Die durchzuführende Validierung bezieht sich auf das von Hubspot gewählte Verfahren unter Berücksichtigung eines Secrets.

Abhängig von dem Erfolg der Prüfung wird innerhalb des Flow-Kontexts eine Variable mit positivem oder negativem Inhalt hinterlegt.

Fehlerhandling

Sollte die Prüfung des Inhaltes negativ ausgefallen sein, ist es sinnvoll, den Sender von dem Ergebnis in Kenntnis zu setzen. Dafür wird die bereits angelegte Variable genutzt. Bei der Policy handelt es sich dieses Mal um „Raise Fault“.

Mit „Raise Fault“ kann ein Fehlerfall generiert werden. Wir senden mit dessen Hilfe einen http-Code an den Sender zurück. Das Ergebnis wird „403 – Authentication failed“ sein, falls die Inhaltsprüfung negativ ausgefallen ist. Ist es jedoch positiv, passiert an dieser Stelle nichts weiter, der Flow bricht nicht ab und läuft weiter.

Es ist „Incoming Request” zu wählen.

Die Prüfung auf die Variable ist direkt am oberen Ende der Policy zu erkennen.

Der Fehler wird wie folgt zurückgegeben:

Speichern

Alle Änderungen werden mit einem Message Toast quittiert.

Deploy

Es reicht nicht, die aktuelle Version der API zu speichern. Es muss zusätzlich ein Deployment durchgeführt werden, sonst ist die letzte Änderung noch nicht enthalten. Das SAP API Management warnt zusätzlich, diesen Umstand nicht zu vergessen. Der Menüpunkt selbst ist in den drei Punkten rechts enthalten. „Deploy“ erscheint natürlich nur, wenn eine Änderung erfolgt ist.

Debugging

Debugging ist beim SAP API Management ein wichtiges Werkzeug. Um das Verhalten seiner Kreation im Detail und im Einsatz betrachten zu können, kann dieser Modus unter dem bekannten Menüpunkt  „Develop“ an derselben Stelle wie „Deploy“ erreicht werden.

Ablauf und Darstellung

Am Beispiel einer fehlgeschlagenen Validierung ist zu erkennen, was genau bei jedem Schritt des Flows passiert ist:

Hier ist eindeutig erkennbar, dass an den rot markierten Punkten Fehler innerhalb des Flows entstanden sind. Der Flow startet bei dem Personen-Symbol an der linken Seite. Der Fehler ist noch vor dem Aufruf der CI passiert. Dieser Schritt wäre an Stelle des Computers ganz rechts erfolgt. Die anschließende Response wird in der unteren Zeile des Flows verarbeitet und durch dessen einzelne Schritte symbolisiert.

Flow Context

Bei jedem einzelnen Schritt des Flows kann der Betrachter alle Variablen, Eigenschaften und Header-Einträge sehen. Alle Werte können innerhalb des Flows geändert, angelegt oder gelöscht werden.

Wir haben beispielsweise innerhalb unseres JavaScripts die Variable „validation“ erzeugt und mit einem Wert belegt:

Dazu wurden Informationen des Aufrufers unserer API aus dem Flow gelesen.

 

Stand: 30. September 2022
Newsletter Setzen Sie auf fundiertes Wissen aus allen Bereichen unserer Branche. Regelmäßig und stets aktuell.
Beratende Person
Kontakt Haben Sie Fragen oder wünschen weitere Informationen? Unsere Experten beraten Sie gerne.