WSDL Service Import Plugin
Introduction
The WSDL Service Import Plugin reads a service description and generates a library of action blocks, which call the operations of that service. In addition, the datatypes and containers needed as input/output data of the operations are generated.
Supported service descriptions:
- SOAP: WSDL
- REST: WADL and OpenAPI (formerly Swagger), in YAML or JSON format
For SOAP services, the generated actions are SOAP calls; for REST services, one REST call action is generated per operation (i.e. per path and HTTP method).
TODO: short note on supported WSDL/SOAP versions (1.1 / 1.2, document/literal, rpc/encoded) and known limitations.
See also WSDL Plugin Reference (usage example) and SOAP WSDL.
Start
Call the plugin via the expecco menu: Plugins → Import → WSDL Services → Import Definitions from URL
The submenu offers the following entries, each either from a file or from a URL:
- Import SOAP (WSDL) Definitions... and Import SOAP (WSDL) Definitions from URL...
- Import REST (WADL) Definitions... and Import REST (WADL) Definitions from URL...
- Import REST (OpenAPI/Swagger) Definitions... and Import REST (OpenAPI/Swagger) Definitions from URL...
TODO: check the exact menu labels in the current expecco version; describe reimport, if present.
Import Dialog
Source
URL:
- The URL of the WSDL, WADL or OpenAPI document, e.g. "https://www.w3schools.com/xml/tempconvert.asmx?WSDL".
TODO: screenshot of the dialog.
Parameter
Import into:
- Either into the current project (i.e. as actions directly in the current project), or into an imported sub-library.
Generate actions for packing/unpacking the response containers:
- If checked, additional actions for data instantiation and data extraction are generated.
TODO: complete list of dialog parameters (library name, prefix for elements, ...).
Generated Library
After the import, the suite contains the following elements:
Service API:
- Action blocks to call the operations of the service. Inputs and outputs convert the SOAP container data into more useful expecco values.
Low Level:
- The low-level SOAP call actions.
Types:
- Datatype definitions, as needed and declared in the WSDL.
Data Instantiation:
- Actions to instantiate values as passed to SOAP operations (i.e. to construct composite objects as expected by the operation as incoming data).
Data Extraction:
- Actions to extract field values from data received from SOAP operations.
wsdl:
- An attachment which contains the retrieved WSDL document. For reference and documentation only.
TODO: naming scheme of generated elements; reimport behavior (replace of existing actions); tag/coloring of generated blocks.
Calling an Operation
Generated SOAP call actions contact the endpoint given in the WSDL by default. They have an additional input pin named "__url__", which can be used to provide a different endpoint URL.
TODO: describe handling of optional elements, arrays, attachments, SOAP headers and faults.
Authentication
TODO: summarize. Currently HTTP Basic Authentication is supported, by environment variables "SOAP_USER" and "SOAP_PASSWORD", or by the pins "__user__" and "__password__" (21.2 and later). Details: Authentication.
Timeouts
TODO: summarize. The default timeout is 30s; it can be changed via the environment variable "SOAP_TIMEOUT" or by the pin "__timeout__" (21.2 and later). Details: SOAP Timeouts.
Protocol Traces
To see the in and out messages, check Extras → Settings → Execution → Tracing → "Show SOAP Requests on Transcript", and set the Logger's threshold to at least "Info".
Limitations / Known Issues
TODO
Version History
TODO: first version of the plugin, changes in later releases.