Setting query-string parameters for a target API call
Assume your API Gateway endpoint usually is going to call this target API: https://myserver/path?p1=v1&p2=v2
The query-string parameters can be adjusted using a special transformation helper called {SetReqQuery}
. For example, if you want to add an additional parameter of p3=v3
to the target API call, you would add the following to your transformation: SetReqQuery 'p3' 'v3'
This causes the gateway to call the target using the following URL: https://myserver/path?p1=v1&p2=v2&p3=v3
Adding a query parameter with a constant value can also be done using the QueryParam
policy. Adding a query parameter using a transformation comes from accessing the value from anywhere in the POST
body or from any of several useful "request context" variables.
You can take a value from a POST
payload and turn it into a query-parameter. For example, if our endpoint takes a POST
JSON payload of the form:
Example
{ "customer": "Acme", "creditLimit": 50000 }
You can use the following helper to add the creditLimit
to the query-string:
Example
SetReqQuery 'cl' (jsonPathValue '$.creditLimit')
You can also take the value of a request header and pass it to the target as a query-parameter if your request includes a header called 'some-data' with a value of abc123.
We can send this to the target as a query-param called 'data' using this helper:
Example
SetReqQuery 'data' (requestVars 'request.header.some-data')
The gateway would call the target server using this URL: https://myserver/path?p1=v1&p2=v2&data=abc123