Loading…
Loading…
Learn how the platform generates an OpenAPI v3 specification for Publish services at publish time, reflecting conversion options and WSDL fault contracts.
For services configured in the Publish direction (SOAP-to-REST), the platform automatically generates a standards-compliant OpenAPI v3 specification. This document serves as the canonical, machine-readable contract for the REST API endpoint that the platform exposes to API consumers.
The generated OpenAPI specification is not a generic template; it is a precise description of the live API endpoint, built from the source WSDL and the specific conversion settings applied to the service. It details every available path, the request and response schemas for each operation, and the potential error shapes. API consumers can use this document with standard tooling to generate client libraries, create mock servers, or run contract tests.
IMPORTANT
OpenAPI generation applies exclusively to Publish services. Services in the Consume direction (REST-to-SOAP) expose their contract as a WSDL file, not an OpenAPI document. Attempting to generate an OpenAPI specification for a Consume service will result in an error.
The OpenAPI specification is generated as a direct consequence of the publish action. The process synthesizes the service's configuration and source WSDL into a complete REST API definition.
flowchart TD
subgraph "API Publisher Inputs"
A[Source WSDL]
B[Conversion Options]
end
subgraph "Platform"
C(Publish Action)
D{OpenAPI Generation}
end
subgraph "Outputs"
E[REST Endpoint]
F[OpenAPI v3 Specification]
end
A --> C
B --> C
C --> D
D --> F
D --> E
style F fill:#e9f5e9,stroke:#333,stroke-width:2px
style E fill:#e9f5e9,stroke:#333,stroke-width:2pxwsdl:fault contracts.servers[0].url) is set to the service's runtime base path: /publish/{environment}/{serviceKey}.wsdl:fault detail contracts from the WSDL.The generated OpenAPI schema is a direct reflection of the configured conversion options. Any change to these options will be present in the specification generated during the next publish event.
Field-name casing option renames properties in the JSON schemas.Date/time, numeric, boolean, duration, and binary options determine the type and format of schema fields.Null / empty handling configuration is reflected in a field's nullability within the schema.Response envelope wrap and JSON field ordering options shape the structure of the response body schema.Validation regexes are emitted as pattern constraints on string fields. Integer range bounds are emitted as minimum and maximum constraints on integer fields.Error / fault shape option determines the schema for error responses, such as one conforming to RFC 7807 Problem Details.Upstream-failure-status setting is surfaced via the extension keys x-s2r-upstream-failure-status and x-s2r-failure-body-in-200.The platform inspects the source WSDL for wsdl:fault definitions associated with each operation. These are translated into distinct error responses in the OpenAPI document, allowing API consumers to understand the specific fault structures for each operation before making a call.
After a service is published, its OpenAPI specification is made available in both JSON and YAML formats. It can be accessed via a direct URL or downloaded from the service's page in the user interface.
API publishers can provide the specification URL and the service base URL to API consumers, who can then import the document into their preferred development and testing tools.
Before or after the first publish, API publishers can refine the generated specification by making edits in the Mapping tab of the service configuration. Common refinements include:
getCustomerByIdRequest to a descriptive summary).Each set of edits creates a new, immutable revision of the service.
NOTE
The source material does not provide a complete example of a generated OpenAPI document.
Consume ServicesConsume direction.Consume services expose a WSDL contract to their consumers, not a REST/OpenAPI contract.Consume services. This prevents the creation of a misleading artifact.