Calling Web Services

www.altova.com Print this Topic Previous Page Up One Level Next page

Home > 

Calling Web Services

You can design a mapping so that it calls a Web service as part of its execution. Namely, you can insert a Web service call into a mapping similar to a function, connect input and output components to it, and consume the result as required (for example, preview it in the MapForce output window, pass it to another component, or write it to a file). This effectively turns MapForce into a powerful Web service client which is easily configurable from a graphical user interface. A Web service call created with MapForce may be executed either by MapForce itself, or on a different machine or even platform, by MapForce Server. The latter can run mappings through the command-line interface, as an API call, or as a FlowForce Server job, see Automation with MapForce Server.

 

MapForce supports calling both WSDL-style and REST-style Web services. Therefore, when you add a Web service to the mapping, you can use one of the following approaches:

 

For WSDL-style Web services, provide to MapForce the WSDL (Web Service Definition Language) file of the Web service to be called. MapForce uses the .wsdl file to communicate with the Web server. If the .wsdl file implements multiple services, endpoints, and operations, you can select or update them directly in MapForce;
For non-WSDL Web services, manually enter into MapForce the Web service details. This includes the URL, the request method (for example, GET, POST, PUT), request and response structure (such as XML, JSON, or custom MIME types), and parameters. Optionally, if you have the WADL (Web Application Definition Language) file of the Web service to be called, you can import the definition from the WADL file. Also, if you have a sample URL of the Web service, you can instruct MapForce to parse the URL and automatically extract any query, template, or matrix parameters from it, so that you don't have to define them manually.

 

The following table summarizes the support details of REST-style and WSDL-style Web services in MapForce.

 

Feature

REST-Style

WSDL-Style

Mapping language

BUILT-IN

BUILT-IN, C#, Java

Automation with MapForce Server

Yes

Yes, when language is "BUILT-IN"

Protocols

HTTP (GET, POST, PUT, DELETE, custom verbs)

SOAP 1.1, 1.2 over HTTP
Non-SOAP services over HTTP

Request/response structures

XML
JSON
Protocol Buffers
Custom MIME types

SOAP message

Security

HTTP/HTTPS
Server certificates
Client certificates
HTTP authentication
Preemptive authentication
HTTP/HTTPS
Server certificates
Client certificates*
HTTP authentication
Preemptive authentication*
WS-Security*

 

* Not supported in C# and Java.

Import service definition

Optionally, from WADL file

From WSDL file (required)

Import parameters from URL

Yes

Not applicable

Dynamic URL

Yes

Yes

Timeout

Yes

Yes

Dynamic authentication

Yes

Yes

 

Remarks:

 

"Dynamic URL" means that you can provide the URL of the Web service from the mapping (or as a parameter to the mapping) as an alternative to entering it in a dialog box and saving it together with the mapping.
"Timeout" means that you can configure in MapForce the interval after which the call should time out if the Web server is not responding.
"Dynamic authentication" means that you can provide the authentication details (username, password) from the mapping (or as a parameter to the mapping) as an alternative to entering them in a dialog box and saving them together with the mapping.

 

In the case of WSDL-style Web services, you can use the following protocols:

 

SOAP 1.1, 1.2 over HTTP

Both the RPC/Encoded and Document/Literal styles are supported. If the Web server returns a WSDL fault, the mapping execution stops. For such cases, you can optionally insert an exception component on the mapping area to handle the error. If the Web server returns a non-WSDL error, the mapping execution stops, and an error message is returned (or displayed on the screen, if you are previewing the mapping in MapForce).

Non-SOAP over HTTP

This refers to slightly less common, non-SOAP HTTP services. When using HTTP GET, the url-encoded style is supported. When using HTTP POST, the url-encoded and text/xml styles are supported.


© 2019 Altova GmbH