Validate API Specification

This policy validates the responses against API's various specifications such as schema, content-types, and HTTP Headers referenced in their corresponding formats as follows:

  • The schema is available as part of the API definition. The schema for SOAP API are imported through WSDL and for REST APIs it can be through swagger, RAML or can be uploaded by the user.
  • The content- types are available as part of the API definition. FOR SOAP APIs these are imported through WSDL and for REST APIs it can be through swagger, RAML or can be uploaded by the user.
  • The HTTP Headers are specified in the Validate API Specification policy page .

The response sent to the API by an application must conform with the structure or format expected by the API. The responses from the native API are validated against the API specifications in this policy to conform to the structure or format expected by the API.

Various API specifications validated are as follows.

  • Schema

    The responses from the native API are validated against the schema provided in the API definition. The schema defines the elements and attributes and specifies the data types of these elements to ensure that only appropriate data is allowed through to the API.

    For a REST API, the schema can be added inline or uploaded in the Technical Information section on the API Details page. The validation depends on the Content-type header in the request or Accept header in the response and the corresponding schema validation would be executed.

    The schema type for validation is selected based on:

    • The Content-Type header when the policy is added in the Request processing stage.
    • The Accept header when the policy is added in the Response processing stage.

    If the header or payload is missing the schema validation is skipped.

    The table lists the default Content type/Accept header and schema validation type mapping.

Content-type/Accept Schema validation type
application/json application/json/badgerfish JSON schema
application/xml text/xml text/htm XML schema
text/plain Regex schema

For a SOAP API, the WSDL and the referenced schema must be provided in a zip format. The JSON schema validation is supported for the operations that are exposed as REST.

  • Content-types. The responses from the native API are validated against the content-types specified in the API definition.
  • HTTP Headers. The responses from the native API are validated against the HTTP Headers specified in this policy to conform to the HTTP headers expected by the API.

The run-time invocations that fail the specification validation are considered as policy violations. Such policy violation events that are generated can be viewed in the dashboard.

The table lists the API specification properties, you can specify for this policy, to be validated.

Parameter Description
Schema Validates the request payload against the appropriate schema (based on the Content-type header in request or Accept header in response). Provide the following additional features for XML schema validation:
  • Feature name. Specifies the name of the feature for XML parsing when performing XML schema validation.

    Select the required feature names from the list:

  • Feature value. Specifies whether the feature value is True or False.
Query Parameters This is applicable only for a REST API. Validates the query parameters in the incoming request against the query parameters defined in that request's API Specification. The configuration is provided in the API details page.
Path Parameters This is applicable only for a REST API. Validates the path parameters in the incoming request against the path parameters defined in that request's API Specification. The configuration is provided in the API details page.
Content-types Validates the content-types in the incoming request against the content-types defined in that request's API Specification. The configuration is provided in the API details page.
HTTP Headers Validates the HTTP header parameters in the incoming request against the HTTP headers defined in that request's API Specification. The configuration is provided in the API details page. Provide the following information:
  • Condition. Specifies the logical operator to use to validate multiple HTTP headers in the incoming API requests.

    Available values are:

    • AND. webMethods API Gateway accepts only the requests that contain all configured HTTP headers.
    • OR. This is selected by default. webMethods API Gateway accepts requests that contain at least one configured HTTP header.
    • HTTP Header Key. Specifies a key that must be passed through the HTTP header of the incoming API requests.
    • Header Value. Optional. Specifies the corresponding key value that could be passed through the HTTP header of the incoming API responses. As this property supports variable framework, you can make use of the available variables to specify the header value.

    For details about the variables available in webMethods API Gateway, see Variable Framework . You can add more HTTP headers by clicking the Add button.