Transform Headers Policy
The transformheaders policy is used to override incoming request HTTP headers or outbound response HTTP headers. You can override these HTTP headers by:
- Adding or updating list of headers
- Removing headers individually
- Defining an allow list
Timing
| On Request | On Response | On Request Content | On Response Content |
|---|---|---|---|
| X | X | X | X |
Example
On Request
Add a header from the request payload:
"transform-headers": {
"addHeaders": [
{
"name": "X-Company-Request-Id",
"value": "{#request.id}"
}
],
"removeHeaders": [
"X-Company-TransactionId"
],
"whitelistHeaders": [
"Content-Type",
"Content-Length"
],
"scope": "REQUEST"
}
On Response
Add the header for the response phase:
{
"scope": "RESPONSE",
"addHeaders": [
{
"name": "X-Company-Response-Id",
"value": "{#response.id}"
},
{
"name": "test-header",
"value": "test"
}
],
"removeHeaders": [
"Remove-Header"
],
"whitelistHeaders": [
"content-type"
]
}
On Request Content
Add a header from the request payload:
"transform-headers": {
"addHeaders": [
{
"name": "X-Product-Id",
"value": "{#jsonPath(#request.content, '$.product.id')}"
}
]
"scope": "REQUEST_CONTENT"
}
On Response Content
Add a header from the response phase for on response content:
{
"scope": "RESPONSE_CONTENT",
"addHeaders": [
{
"name": "X-product-id",
"value": "{#jsonPath(#response.content, '$.product.id')}"
},
{
"name": "test-header",
"value": "test"
}
],
"removeHeaders": [
"Remove-Header"
],
"whitelistHeaders": [
"content-type"
]
}