This action sets header fields in the client response.
The configuration uses
JSON format with the header field names as keys (string
) and values of type
string
, number
, boolean
or null
. You can provide an array
to set multiple values.
The action can have an in
attribute (input), but no out
attribute (output).
It may also have a src
attribute referencing a JSON template and a status
attribute.
A response status can be set via a Status
header field or with the status
attribute – the latter overrides the former. This will send a 404 response:
<set-response-headers status="404">
{ "Status": 200 }
</set-response-headers>
<set-response-headers in="$upstream">
{
"content-type": "text/plain" {{,}}
{{with myRequest/headers }}
{{: foo }}
"set-cookie": [
{{loop array(set-cookie) }}
{{ . }}
{{end}}
]
{{end}}
}
</set-response-headers>
This configuration sets the content-type
to text/plain
, copies the
foo
header field from the myRequest
upstream response and also copies all
set-cookie
header fields from that upstream response. If no set-cookie
header fields are in the upstream response, none will be set in the client
response.
<set-response-headers src="my-response-headers.tmpl"/>
This configuration references an external resource with a JSON template for the response headers.