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