response-contains-header
Requires that response objects with specific HTTP status codes or ranges contain specified response headers.
OAS | Compatibility |
---|---|
2.0 | ✅ |
3.0 | ✅ |
3.1 | ✅ |
API design principles
In some cases, it is important to design an API so that it consistently returns specific properties in responses. A common example is to return pagination headers for collections. This rule helps achieve the desired consistency across all or some responses in an API.
Configuration
Option | Type | Description |
---|---|---|
severity | string | REQUIRED. Possible values: off , warn , error . |
names | Map (HTTP response code or range, [string]) | REQUIRED. For a given HTTP response code or range, the corresponding list of expected HTTP response headers. |
An example configuration:
rules: response-contains-header: severity: error names: 2XX: - x-request-id - x-correlation-id '400': - Content-Length - x-correlation-id
Examples
Given this configuration:
rules: response-contains-header: severity: error names: 2XX: - x-request-id - x-correlation-id '400': - Content-Length - x-correlation-id
Example of an incorrect response:
paths: /customers/{id}: post: responses: '200': description: OK headers: x-request-id: description: The request ID returned in the response. schema: type: string
Example of a correct response:
paths: /customers/{id}: post: responses: '200': description: OK headers: x-request-id: description: The request ID returned in the response. schema: type: string x-correlation-id: description: The correlation ID for log audit purposes. schema: type: string