Einfaches Objektzugriffsprotokoll
RGeschrieben vonRiku Virtanen Vor über einer Woche aktualisiertTable of contentsSOAP-Dienste nutzen
Kurzer Überblick über SOAP-Dienste
Simple Object Access Protocol oder SOAP ist ein Protokoll zum Austausch von Informationen zwischen einem Client und einem Server in einem strukturierten Format über eine Vielzahl von Protokollen der Anwendungsschicht, wie z. B. HTTP. Da sich dieser Kurs auf die Nutzung der gängigsten Arten von Diensten über HTTP konzentriert, konzentrieren wir uns auf SOAP aus der HTTP-Perspektive.
SOAP definiert die obligatorischen HTTP-Anforderungs- und Antwortnutzdaten, die mit XML formatiert werden und bestimmte Teile wie Umschläge enthalten, die die gesamte Anforderungs- oder Antwortnutzdaten mit Headern und Textkörper kapseln. Zusätzlich zu den Nutzdaten verwendet SOAP auch HTTP-Header, die angeben, um welchen SOAP-Vorgang es sich bei der HTTP-Anforderung handelt. Die SOAP-Nutzdaten sind bei POST als HTTP-Methode immer obligatorisch. Unten sehen Sie ein Beispiel für eine SOAP-Nutzdaten als XML.
Kurz gesagt definiert SOAP mit HTTP einen Satz von Regeln für die Formatierung der Nutzlast und der Header, um eine formatierte Antwort zwischen Client und Server auszutauschen.
So nutzen Sie SOAP-Dienste
Da die Nutzung von SOAP-Diensten mit HTTP erfordert, dass die Anforderungsnutzlast und die Antworten XML sind, müssen wir verwendenWeb-HttpRequestAufgabe. Nachdem wir nun wissen, welche Aufgabe wir verwenden sollen, müssen wir verstehen, wie die Anforderungsnutzlast erstellt wird, wohin die Anforderung gesendet wird und welche HTTP-Header verwendet werden sollen. Normalerweise stellen SOAP-Dienste eine WSDL-Datei (Web Services Description Language) bereit, die den Dienstnutzern hilft, die Funktionsweise des SOAP-Dienstes zu verstehen. Unten sehen Sie ein Beispiel für eine WSDL-Datei eines Dienstes, der zwei Zahlen als Eingabe (x,y) verwendet und deren Summe (sum) zurückgibt.
WSDL-Dateien werden normalerweise mit Software interpretiert, die die benötigten Payloads generiert und so die Entwicklung und den SOAP-Verbrauch unterstützt. Frends bietet keine Funktion zum Generieren von Payloads oder URLs aus WSDL-Dateien, daher müssen wir Drittanbietersoftware wie SoapUI verwenden. Nachdem das obige WSDL in SoapUI importiert wurde, können wir überprüfen, wie die verschiedenen Parameter aussehen würden, wie im Bild unten.
Dann können wir mit der Konfiguration der benötigten Parameter in der Aufgabe beginnen:
URL
Abfrageparameter
HTTP-Methoden
HTTP-Header
Nachricht (Anforderungsnutzlast)
Authentifizierung
Verbindungs-Timeout (in Sekunden)
Ausnahme in der Fehlerantwort auslösen
URL
Wie bei allen HTTP-Anfragen müssen wir die Serveradresse festlegen. Diese können wir aus der SoapUI ableiten und im URL-Feld mit dem Werthttp://www.examples.com/SumNumbers/Dies kann natürlich auch aus der WSDL ermittelt werden.
Abfrageparameter
Abfrageparameter sind bei SOAP nicht so üblich, aber wenn in der SOAP-Dokumentation angegeben ist, dass diese erforderlich sind, können sie wie jeder Abfrageparameter im URI-Feld konfiguriert werden.
HTTP-Methode
Wie gesagt ist bei SOAP über HTTP die Methode immer POST.
HTTP-Header
Normalerweise erfordert SOAP, dass die SOAP-Operation oder -Aktion im HTTP-Header angegeben wird. In diesem Fall wäre das SOAPAction: Sum. Zusätzlich müssen wir den Content-Type festlegen: application/soap+xml; charset=utf-8. Denken Sie immer daran, die SOAP-Dokumentation für korrekte HTTP-Header zu konsultieren.
Nachricht (Anforderungsnutzlast)
Wir können die Payload von SoapUI kopieren und SoapUI rendert die Werte für jede Eingabe bequem mit einem Fragezeichen. Im Nachrichtenfeld derHttpRequestBei der Aufgabe können wir Handlebars verwenden, um auf Variablen oder Hardcode zu verweisen, falls erforderlich.
Authentifizierung
Normalerweise wird die Authentifizierung mit SOAP mit Basic Auth durchgeführt, was auf der Registerkarte „Optionen“ konfiguriert werden kann, indem die Authentifizierung auf Basic gesetzt und Benutzername und Passwort aus Umgebungsvariablen referenziert werden. Ein OAuth-Flow ist auch eine mögliche Authentifizierungsmethode, bei der Authentifizierungsinformationen in den HTTP-Headern festgelegt werden müssen.
Verbindungstimeout
Das Verbindungstimeout sollte entsprechend den Anforderungen des SOAP-Dienstes oder des Verbrauchers eingestellt werden, normalerweise sollte der Standardwert jedoch völlig ausreichend sein.
Ausnahme in der Fehlerantwort auslösen
Das Auslösen von Ausnahmen mit einer Fehlerantwort hängt von der Lösung ab, da viele Arten von Möglichkeiten zur Ausnahmebehandlung implementiert werden können.
Nachdem wir nun unsere Parameter konfiguriert haben,HttpRequestDie Aufgabe würde wie im Bild unten aussehen.
Da der SOAP-Dienst eine Antwort als XML zurückgeben würde, müssten wir diese entsprechend behandeln, indem wir sie in JToken umwandeln oder XPathQuery oder XSLT verwenden oder was auch immer der Integrationsanwendungsfall erfordert.
Ausnahmebehandlung mit SOAP-Diensten
Die Ausnahmebehandlung von SOAP-Diensten hängt vom Anwendungsfall selbst und der Funktionsweise des SOAP-Dienstes ab. Es gelten die gleichen Regeln wie bei der Nutzung von REST-APIs.
Zusammenfassung zur Nutzung von SOAP-Diensten mit Frends
SOAP über HTTP ist grundsätzlich eine POST-Methode mit streng definierten XML-Nutzdaten und Antworten.
VerwendenHttpRequestAufgabe.
Die Dokumentation oder WSDL des SOAP-Dienstes ist unbedingt erforderlich.
Freunde können WSDL-Dateien nicht interpretieren, was die Verwendung von Software von Drittanbietern oder umfassende Kenntnisse von SOAP und WSDL erfordert.
Behandeln Sie Ausnahmen wie bei REST-APIs oder beliebigen HTTP-Anfragen.
Der nächste Artikel istEinführung in die Nutzung von GraphQL-APIs
Verwandte ArtikelBeispiel für Frends und SOAPEinführung in Integrationen mit HTTPEinführung in die Nutzung von REST-APIsEinführung in die Nutzung von GraphQL-APIsEinführung in andere Techniken für HTTP-Anfragen