Flink-ESB Message-Gateway Tutorials
Ausgangssituation: Anwendungssserver bietet SOAP-Dienste. Die Dienste können über HTTP POST aufgerufen werden.
Ziel: REST API vorne vor den SOAP-Diensten hinzufügen, so dass auch REST-Clients, oder jeder andere Client, der HTTP GET aufrufen kann, die Dienste nutzen kann.
Voraussichtliche Kosten:
Programmieraufwand: 0
Administratoraufwand: 10 Minuten
In diesem Tutorial wird ein freier online SOAP-Dienst benutzt, der unter http://webservices.oorsprong.org/websamples.countryinfo/CountryInfoService.wso verfügbar ist.
Natürlich, können Sie auch jeden anderen SOAP-Dienst in diesem Tutorial nutzen.
Öffnen Sie http://webservices.oorsprong.org/websamples.countryinfo/CountryInfoService.wso?op=FullCountryInfo im Browser.
Werfen Sie einen Blick auf das Format der SOAP-Anfrage (für dieses Tutorial nehmen wir SOAP 1.1). Diese Anfrage erwartet nur eine Variable fürs "sCountryISOCode" -Feld.
Versuchen Sie verschiedene Werte fürs "sCountryISOCode" in der "Test" -Sektion auf dieser Web-Seite. Versuchen Sie zuerst DE, US. Pressen Sie "Invoke" -Button and überprüfen Sie das Ergebnis.
Nun versuchen Sie es mit den falschen Daten. Zum Beispiel, benutzen Sie 123 als Länderkürzel und klicken Sie "Invoke" -Taste. Werfen Sie den Blick auf Format der Nachricht im Fehlerfall. Versuchen Sie es auch mit dem leeren Länderkürzel, und sehen Sie sich den Fehler an. Kopieren Sie die Antworten im Gutfall und im Fehlerfall.
Flink-ESB Message-Gateway Konfig-Konsole im Browser öffnen. Standard-URL: https://localhost:8082. Einloggen mit Standard Benutzername/Passwort: admin/admin.
Klicken Sie auf "Gateway Config" Registerkarte, wenn Sie nicht bereits da sind, und drücken Sie "Add Entry" Taste.
Geben Sie die Daten wie auf dem Bild unten ein: "Config Id" : 1001 (oder jede beliebige eindeutige Id), "Method" : GET, "URI" : /service/country/info/{country}. Lassen Sie alle anderen Felder unverändert.
Durch die Eingabe von "{country}" definieren Sie diesen Teil der URL als dynamisch. Das heißt, Sie können "/service/country/info/DE" oder "/service/country/info/US" oder "/service/country/info/123" aufrufen, und all die Anfragen werden von diesen Fassade-Eintrag bearbeitet. Flink-ESB wird auch die Nachrichteneigenschaft zu der Anfrage hinzufügen, die den Namen "country" hat (String zwischen den geschweiften Klammern), und den Wert, den Sie in der URL an der Stelle von "{country}" angegeben haben.
Überprüfen Sie die eingegebenen Daten. Nun klicken Sie "Save Modifications" um den Fassade-Eintrag zu speichern.
"Destinations"-Reiter wählen und auf "Add Entry" Knopf drücken. Geben Sie die Daten wie auf dem Bild unten ein: "Destination Id" : 1001 (oder jede beliebige eindeutige Id), "Protocol" : HTTP, "Method" : POST, "Destination Expression" : 'http://webservices.oorsprong.org/websamples.countryinfo/CountryInfoService.wso'.
Ziel-URL besteht aus Host-Header und URI, so wie sie stehen auf der Beschreibungsseite des Soap-Dienstes (siehe auch Bild im Schritt 1). Da diese URL ein litaraller Wert ist (keine Ausdrücke oder Variablen enthält) - muss es in einfachen Anführungszeichen eingeschlossen werden, wie auf dem Bild oben.
Achten Sie darauf, wir haben für das Ziel HTTP POST definiert (als Beschreibung des Dienstes erfordert), aber de Fassade-Eintrag wurde mit HTTP GET definiert. Also verwandeln wir die mit HTTP GET einkommende Anfrage in die ausgehende HTTP POST Soap-Nachricht.
Klick Sie nun auf "Save Modifications" um das Ziel zu speichern.
Öffnen Sie die URL http://webservices.oorsprong.org/websamples.countryinfo/CountryInfoService.wso im Browser und kopieren Sie den Text (Body) der SOAP-Anfrage.
Nun öffnen Sie den Texteditor und erstellen Sie eine neue Datei. Pasten Sie den Inhalt in die Datei, und führen Sie die Änderung wie auf dem Bild unten durch:
Speichern Sie die Datei in irgendeinem Ordner unter den Namen "CountryInfo.template" (oder einen anderen Namen, den Sie möchten).
Gehen Sie jetzt zu Flink-ESB Message-Gateway Konfig-Konsole im Browser und klicken Sie auf "Transformation Rules" -Tab. Geben Sie die Daten wie auf dem Bild unten ein: "Rule Id" : 1001 (oder irgendeine eindeutige Id), "Rule Type" : TEMPLATE, "Filename" : D:/programming/templates/CountryInfo.template (ersetzen Sie den Pfad mit dem lokalen Pfad, oder besser ersetzen sie ihn durch eine Projektvariable).
Klicken Sie jetzt "Save Modifications" um die Transformationsregel.
Öffnen Sie die URL http://webservices.oorsprong.org/websamples.countryinfo/CountryInfoService.wso im Browser und kopieren Sie den Inhalt von "Content-Type" Header.
Gehen Sie jetzt zu Flink-ESB Message-Gateway Konfig-Konsole im Browser und klicken Sie "Message Properties" -Tab an. Geben Sie die Daten wie auf dem Bild unten ein: "Property Id" : 1001 (oder jede beliebige eindeutige Id), "Property Name" : Content-Type, "Property Expression" : 'text/xml; charset=utf-8' (Inhalt des Content-Type HTTP-Headers, den Sie kopiert haben). !!! Nicht vergessen, den Wert der Eigenschaft in den einfachen Anführungszeichen zu erschliessen !!!
Klicken Sie "Save Modifications" um die Nachrichteneigenschaft zu speichern.
Klicken Sie auf "Gateway Config" -Reiter und klicken Sie auf der Zeile mit "Config Id" 1001 (oder welche auch immer Id Sie dem GET Fassade-Eintrag zugewiesen haben) um Detailspanel sichtbar zu machen.
Klicken Sie auf "Edit Destination Rules" -Link, wählen Sie "Show all rules" Checkbox, danach wählen Sie das Kontrollkästchen auf der linken Seite des Ziels mit Id 1001 (oder welche auch immer Id Sie dem Ziel des SOAP-Dienstes zugewiesen haben). Das Ziel sollte die Farbe von grau zu schwarz ändern, wie auf Bild unten:
Klicken Sie auf "Edit Destination Rules" -Link um Detailspanel zu verbergen. Klicken Sie nun auf "Edit Request Transformation Rules" -Link, wählen Sie "Show all rules" Checkbox, und danach wählen Sie das Kontrollkästchen auf der linken Seite der Regel mit Id 1001 (oder welche auch immer Id Sie der Transformationsregel im Schritt 4 zugewiesen haben). Die Regel soll die Farbe von grau zu schwarz ändern, wie auf dem Bild unten:
Klicken Sie auf "Edit Request Transformation Rules" -Link um Detailspanel für die Transformationsregel zu verbergen. Klicken Sie nun auf "Edit Request Properties Rules" -Link, wählen Sie "Show all rules" Checkbox, und wählen Sie das Kontrollkästchen auf der linken Seite der Eigenschaft mit Id 1001 (oder welche auch immer Id Sie der Nachrichteneigenschaft im Schritt 5 zugewiesen haben). Die Eigenschaft soll die Farbe von grau zu schwarz ändern, wie auf dem Bild unten::
Klicken Sie auf "Edit Request Properties Rules" -Link um Detailspanel zu verbergen. Nun klicken Sie auf "Save Modifications" um Änderungen zu speichern.
Klicken Sie auf "Gateway Config" Registerkarte, wenn Sie noch nicht da sind, und klicken Sie auf "Trigger Instances" -Taste. Bestätigen Sie die Meldung mit der Taste "OK".
Öffnen Sie die URL https://localhost:8081/service/country/info/DE im Browser (oder auf welchen auch immer IP/Port Ihre Instanz vom Message-Gateway läuft). Sie sollten eine Ausgabe wie auf dem Bild unten bekommen:
Versuchen Sie jetzt auch die anderen Ländercodes. Die Ausgabe sollte genau die gleiche sein wie die, die Sie als Ausgabe vom SOAP-Dienst im Schritt 1 bekommen haben.