Webservices
MapForce unterstützt WSDL-basierte und Nicht-WSDL Webservices. Zu den Nicht-WSDL Webservices gehört die große Kategorie der generischen HTTP APIs, die oft auch als REST- oder RESTful APIs bezeichnet werden.
WSDL-basierte Webservices
Bei einem WSDL-basierten Webservice werden die Operationen, Input- und Output-Nachrichten und die Netzwerkdetails des Service anhand einer WSDL (Web Services Description Language)-Datei beschrieben. WSDL-Dateien sind XML-basiert und verwenden normalerweise das SOAP-Protokoll, in dem definiert ist, wie der Nachrichtenaustausch zwischen einem Client und einem Service erfolgt.
Außerdem können Sie in MapForce SOAP-Webservice-Projekte erstellen und Java- oder C#-Code zur Implementierung von SOAP-Webservices generieren. Des Weiteren können Sie einen Webservice-Aufruf an Ihren SOAP-Webservice machen und die Antwortdaten in jedem von MapForce unterstützen Format ausgeben. Wenn in der WSDL-Datei mehrere Services, Endpoints und Operationen implementiert sind, können Sie diese direkt in MapForce auswählen oder aktualisieren.
Protokolle von WSDL-basierten Services
Bei Auswahl eines WSDL-basierten Webservice können Sie die folgenden Protokolle verwenden:
•SOAP 1.1, 1.2 über HTTP: Es wird sowohl der Stil RPC/Encoded als auch der Stil Document/Literal unterstützt. Wenn der Webserver einen WSDL-Fehler zurückgibt, wird die Ausführung des Mappings gestoppt. In solchen Fällen können Sie optional eine Ausnahmekomponente für die Fehlerbehandlung in den Mapping-Bereich einfügen. Wenn der Webservice einen nicht-WSDL-Fehler zurückgibt, wird die Mapping-Ausführung gestoppt und eine Fehlermeldung zurückgegeben (oder auf dem Bildschirm angezeigt, wenn Sie eine Mapping-Vorschau in MapForce anzeigen).
•Nicht-SOAP über HTTP: Dies bezieht sich auf weniger gebräuchliche Nicht-SOAP HTTP-Services. Bei HTTP GET wird der Stil url-encoded unterstützt. Bei HTTP POST werden die Stile url-encoded und text/xml unterstützt.
HTTP APIs
HTTP APIs enthalten normalerweise in ihrem Message Body-Teil Request- oder Response-Strukturen. MapForce unterstützt die folgenden Arten von Request- oder Response-Bodies: JSON, XML, Protocol Buffers und unstrukturierte Bodys mit benutzerdefinierten MIME Types.
Bei HTTP APIs können die Webservice-Informationen manuell oder automatisch eingegeben werden. Dazu gehören die URL, eine Request-Methode (z.B. GET, POST, PUT), die Request- und Response-Struktur (wie z.B. XML, JSON oder benutzerdefinierte MIME-Types) sowie Parameter.
XML und JSON
Sie können für Ihre Request/Response-Strukturen JSON-, XML- oder DTD-Schemas verwenden. MapForce akzeptiert auch eine XML-Datei mit einer gültigen Schemareferenz. Außerdem kann die Webservice-Definition auch aus einer WADL-Datei importiert werden. Sie können diese anschließend manuell adaptieren. Beachten Sie jedoch, dass WADL keine Standardmethode zum Definieren von JSON-Strukturen, sondern nur zum Definieren von XML-Strukturen bietet.
Wenn Sie eine XML- oder JSON-Beispielinstanzdatei, nicht aber die Schema-Datei haben, können Sie das Schema mit XMLSpy entweder erstellen oder generieren (https://www.altova.com/de/xmlspy.html). Falls nötig, kann XMLSpy Ihre Instanzdatei auch von XML in JSON konvertieren oder umgekehrt.
Protocol Buffer
Im Fall von Protocol Buffers Requests und Responses benötigen Sie eine .proto-Datei, die die Protocol Buffers-Binärdatei beschreibt. In diesem Szenario kann der Body des Webservice von oder auf eine Protocol Buffers-Komponente gemappt werden. Nähere Informationen dazu finden Sie unter Beispiel: Auslesen von Daten aus Protol Buffers und Beispiel: Schreiben von Daten in Protocol Buffers.
Nicht strukturierte Bodys mit benutzerdefinierten MIME-Types
Sie können auch Webservices aufrufen, bei denen die Request- oder Response-Struktur flexibel und nicht an ein bestimmtes Schema gebunden ist. Sie können für solche Fälle die vordefinierten MapForce mime-Funktionen verwenden, um entweder den an einen Webservice gesendeten Raw Message Body (die MIME Entity) zu erstellen oder die vom Webservice retournierte MIME Entity über das Mapping zu verarbeiten.
HTTP APIs Vergleich zu WSDL-basierten Webservices
Die folgende Tabelle enthält eine Übersicht darüber, was in Bezug auf HTTP APIs und WSDL-Webservices in MapForce unterstützt wird.
Funktion | HTTP APIs | WSDL-basiert |
---|---|---|
Mapping-Sprache | Built-In
| Built-In, C#, Java |
Automatisierung mit MapForce Server | Ja
| Ja, wenn die Sprache "BUILT- in" ist |
Protokolle | HTTP (GET, POST, PUT, DELETE, benutzerdefinierte Verben) | •SOAP 1.1, 1.2 über HTTP •Nicht-SOAP-Dienste über HTTP
|
Request/Response-Strukturen | •XML •JSON •Protocol Buffer •benutzerdefinierte MIME-Types
| •SOAP-Nachricht |
Sicherheit | •HTTP/HTTPS •Server-Zertifikate •Client-Zertifikate •HTTP-Authentifizierung •Authentifizierung im Vorhinein •OAuth-Autorisierung | •HTTP/HTTPS •Server-Zertifikate •Client-Zertifikate* •HTTP-Authentifizierung •Authentifizierung im Vorhinein* •WS-Security* •OAuth-Autorisierung*
* wird nur in Built-in unterstützt. |
Service-Definition | •Kann manuell definiert werden •Kann importiert werden aus:
oeiner WADL-Datei oeiner URL oeiner OpenAPI-Datei
| •Muss aus einer WSDL-Datei importiert werden |
Dynamische Webservice-URL | Sie können die vollständige URL des Webservice als Parameter für das Mapping bereitstellen oder diese im Mapping definieren. Außerdem können Sie bestimmte URL-Teile als Parameter für das Mapping bereitstellen, während die Basis-URL im Mapping definiert wird.
| Sie können die URL des Webservice als Parameter für das Mapping bereitstellen oder diese als fix (mit dem Mapping gespeichert) definieren. |
Timeout (Das Intervall, nach dem der Webservice-Aufruf aufgrund einer Zeitüberschreitung abgebrochen wird, falls keine Antwort vom Webservice eintrifft).
| Ja | Ja |
Dynamische Authentifizierung (Die Authentifizierungsinformationen werden vom Mapping oder als Parameter für das Mapping bereitgestellt. Nähere Informationen finden Sie unter Dynamische Authentifizierung).
| Ja | Ja |