Getting started with publishing web services

You can publish any process or mapping as a web service.

Both processes and mappings can become deliveries with web service endpoints, but publishing a process allows you to add inputs and outputs.

Requirements

  • When publishing a delivery as a web service, it is possible to invoke it multiple times simultaneously. The delivery then runs multiple times in parallel. Design its mappings and processes to handle parallelism for things such as file handles, table names, and so on.

  • Deliveries using JSON inputs or outputs are only accessible through the HTTP REST endpoint #2 or greater.

Develop the workflow

In xDI Designer, create the process or mapping that represents your web service. Follow the same design principles as other processes or mappings.

If your web service needs input or output parameters, add and configure them as you design. Publish your delivery as a web service when it is complete.

Input and output parameters

To add input or output parameters to your web service, open its process.

Standard parameters

The following Designer elements can become input or output parameters with minimal configuration:

  • Process parameters

  • Tables

  • XML nodes

  • JSON nodes

  • File metadata

To use one of these elements as web service parameters, drag and drop them it onto your process. Open its properties, and navigate to the Publication finger tab. Check Input to use it as an input parameter, and Output to use it as an output parameter.

Screenshot of a process parameter properties window

Advanced parameters

You can also customize the following web service elements:

  • HTTP headers

  • URL parameters (as input)

  • HTTP response codes (as output)

  • HTTP responses

See the configuration article to learn how to configure them.

Publishing

When you are ready to deploy your web service, open the process or mapping context menu, and select Publish > As WebService.

The generated delivery deploys to the connected Runtime, which exposes the HTTP endpoints. Your web service is ready to invoke.

Do not forget to republish your process or mapping each time you modify it.

From xDI Analytics

  • Import the process package in the Analytics Deployment Manager.

  • Navigate to Delivery Projects, and select a Package Manager.

  • Select Deploy as web service.

Invoking

Invoke your web service with HTTP REST or SOAP. All available REST and SOAP endpoints are listed on the runtime console at startup, and printed in the xdi-runtime.log file in the runtime log directory.

Screenshot of the list of HTTP endpoints available in a runtime

The default URLs are as follows:

SOAP Endpoint (local url): http://localhost:42200/wsi/DeliverableService?WSDL
HTTP Rest v3 - Endpoint (local url): http://localhost:42200/rest/DeliveryService/3/default/<path>
HTTP Rest v3 - UI (local url): http://localhost:42200/rest/DeliveryService/3/default?swagger-ui
HTTP Rest v3 - Definition (local url): http://localhost:42200/rest/DeliveryService/3/default?openapi3.json
HTTP Rest v3 - Definition (local url): http://localhost:42200/rest/DeliveryService/3/default?swagger2.json
HTTP Rest v2 - Endpoint (local url): http://localhost:42200/rest/DeliveryService/2/<deliveryName>
HTTP Rest v1 - Endpoint (local url): http://localhost:42200/rest/DeliveryService/1/<deliveryName>

Web service deliveries expose their parameters in definition endpoints. For more about REST definitions, see the article about API definitions.

You need a user with a specific role to invoke these SOAP and REST endpoints.

You can manage access and security settings for HTTP endpoints in the runtime configuration file.