Web Services
MapForce supports WSDL-based and non-WSDL Web services. Non-WSDL Web services include a large category of generic HTTP APIs that are often referred to as REST or RESTful APIs.
About WSDL-based Web services
A WSDL-based Web service uses a WSDL (Web Services Description Language) file to describe the service's operations, input and output messages, and network details. WSDL files are XML-based and typically use the SOAP protocol that defines how messages are exchanged between a client and a service.
MapForce also allows you to design SOAP Web service projects and generate Java or C# code that implements SOAP Web services. Besides, you can make a Web service call to your SOAP Web service and output the response data to any format supported in MapForce. If the WSDL file implements multiple services, endpoints, and operations, you can select or update them directly in MapForce.
Protocols of WSDL-based services
When you select a WSDL-based Web service, 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. In such cases, you can optionally insert an exception component in 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 less common, non-SOAP HTTP services. With HTTP GET, the url-encoded style is supported. With HTTP POST, the url-encoded and text/xml styles are supported.
About HTTP APIs
HTTP APIs typically have request or response structures in the message body part. MapForce supports the following kinds of request and response bodies: JSON, XML, Protocol Buffers, and unstructured bodies with custom MIME types.
For HTTP APIs, you can enter Web service details manually or automatically. The Web service details include a URL, a request method (e.g., GET, POST, PUT), request and response structures (e.g., XML, JSON, custom MIME types), and parameters.
XML and JSON
You can use JSON, XML, or DTD schemas for your request/response structures. MapForce can also accept an XML file with a valid schema reference. Besides, you can also import the Web service definition from a WADL file and make any necessary adjustments manually. Note, however, that WADL provides no standard way to define JSON structures, only XML structures.
If you have a sample XML or JSON instance file without a schema file, you can create or generate the schema with XMLSpy (https://www.altova.com/xmlspy.html). If necessary, XMLSpy can also convert your instance file from XML to JSON, or vice versa.
Protocol Buffers
In case you want to work with Protocol Buffers requests and responses, you will need a .proto file that describes the Protocol Buffers binary file. In this scenario, the body of the Web service can be mapped to or from a Protocol Buffers component. For more information, see Example: Read Data from Protocol Buffers and Example: Write Data to Protocol Buffers.
Unstructured bodies with custom MIME types
You can also call Web services where the request or response structure is flexible and not tied to a particular schema. For such cases, you can use MapForce built-in mime functions to create a raw message body sent to a Web service (the MIME entity) or process from the mapping the MIME entity returned by the Web service.
HTTP APIs vs. WSDL-based Web services
The table below summarizes support details of HTTP APIs and WSDL-based Web services in MapForce.
Feature | HTTP APIs | WSDL-based |
---|---|---|
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 •OAuth authorization | •HTTP/HTTPS •Server certificates •Client certificates* •HTTP authentication •Preemptive authentication* •WS-Security* •OAuth authorization*
* Supported only in Built-In. |
Service definition | •Can be defined manually •Can be imported from:
oa WADL file oa URL oan OpenAPI file
| •Must be imported from a WSDL file |
Dynamic Web service URL | You can provide the full URL of the Web service as a parameter to the mapping or define it inside the mapping. You can also supply specific URL parts as parameters to the mapping while the base URL is defined in the mapping.
| You can provide the URL of the Web service as a parameter to the mapping or make it fixed (saved together with the mapping). |
Timeout (The interval after which the call should time out if the Web server is not responding)
| Yes | Yes |
Dynamic authentication (Authentication details supplied by the mapping or as a parameter to the mapping. For details, see Dynamic Authentication.)
| Yes | Yes |