This article gives an overview on the usage of custom content-type in webMethods API Gateway. Content types are used to define the type of the content. Custom content types can be used to define rules for the payload.
Use Cases:
Below are sample use cases when custom content type is useful.
-
1. Versioing of APIs – Where different versions of the APIs use different payloads.
Example:
Content-type = application/vnd.sample.api.v1+json
Content-type = application/vnd.sample.api.v2+json
-
2. When predefined rules exists as part of Payload
Example: Content-Type: application/vnd.bmw.car+json
{
"manufactured_year": 2020
, "color": "blue"
, "hp": 160
, "model" "X1"
, "type": "SUV"
}
Pre-requisites:
-
1. An active webMethods API Gateway tenant.
-
2. An API hostedon your webMethodsAPI Gateway tenant.
Details:
An API Provider can configure custom content-types based on how the payloads in the incoming or outgoing requests have to be processed. If the native API consumes a custom content-type, the API Provider can configure a mapping between this custom content-type and a base content-type so that the schema validation, and identification in the policies are performed based on the base type.
Example:
Custom content type = application/vnd.mycorp.mydatatype+json
Base Content Type = application/json
Procedure:
-
1. Login to your webMethods API Gateway tenant
-
2. Go to `Administration` . From the `General Tab` Select `Custom Content-Type`.
-
3. Provide the `Content Type` and `Base Type` and `Add`.
-
4. Now Navigate to API and select an API where you want to add `Custom Content Type`.
-
`5. Edit` the API and click on `Policies` tab.
-
7. Now from the right window check `Content Types`. Save the API
** For example, a native API consumes application/vnd.ford.car+json content-type. The API provider creates an API for this native API and enforces the Validate API Specification policy and the API definition has schema mapping for application/json. When the request reaches API Gateway and as there is no content-type schema mapping for application/vnd.ford.car+json, the schema validation is skipped. In such scenarios, if the API provider creates a custom content-type mapping in the API Gateway UI with the content type as application/vnd.ford.car+json and base type as JSON, then the payload in the incoming request is validated against the application/json schema.