Custom Response HTTP Headers

MockMotor allows you to add custom HTTP headers to the response.

The headers values are scriptable and can use the same variables as the payload field plus response (aka output) variable.

Adding a New Custom Header

To add a new custom header to a response, click on the plus sign in the custom headers section.

Provide a header name.

Removing a Custom Header

To remove a custom header from a response, click on the minus next to the custom header. Confirm the operation.

Fixed Values

For returning a fixed value, place it into the value field.

Computed Values

Each value is computed when it can be interpreted as a valid JS or XQ script.

Programmatically Skip the Header

If you need to skip a particular computed header in a specific situation, make its script result in null (for JS) or empty sequence () (for XQ). MockMotor removes the headers that have null values.

For instance, below scripts provide a fake value to a debug header when the request has a debugInfo parameter. Otherwise, the scripts set the value to null and () respectively, skipping the header.

JavaScript XQuery
input.debugInfo? “1,2,DB100”:null if( $input//*:debugInfo ) then ( “1,2,DB100” ) else ()

Empty Values

An empty header value is a valid case according to HTTP specs.

For example, in the following response the X-Parts-Taken-From-Cache header has an empty value (probably meaning that the service retrieved all parts from actual storage or backends):

HTTP/1.1 200 OK
Date: Mon, 11 Mar 2019 02:05:32 GMT
Content-Type: application/json;charset=utf-8
X-Parts-Taken-From-Cache:

{ ...

Fixed Empty Values

To provide a fixed empty value, leave the value blank:

Scripted Empty Values

To generate an empty header value, the script should result in an empty string value "" or ''.

Here the script provides an empty string "" as a JS value when the input contains CacheOption: "Never" value. MockMotor then generates an empty value for X-Parts-Taken-From-Cache header.

Quoted Values

Fixed Quoted Values

If you need to enforce a quoted empty value, use single-quote quotation:

The value here is two double quotes enclosed in two single quotes: '""', i.e. '-"-"-'.

The resulting header is like below:

HTTP/1.1 200 OK
Content-Type: application/json;charset=utf-8
X-CustomHeader-1: ""

{ ...

Scripted Quoted Values

The same two double quotes enclosed in two single quotes - '"VALUE"', i.e. '-"VALUE"-' - can be used in a script when it needs to generate a quoted value programmatically:

The resulting header is like below:

HTTP/1.1 200 OK
Content-Type: application/json;charset=utf-8
Identity: "N/A"

{ ...