First: Apiproxy doesn’t receive any queryparams.
Then create a request in preFlow for the Target
Adding an AssignMessage policy called “new-queryParams” inside Flow (target)
<AssignMessage name='new-queryParams'>
<Add>
<Headers/>
<QueryParams>
<QueryParam name="val">{inputs.val}</QueryParam>
<QueryParam name="utcTimeStamp">{inputs.utcTimestamp}</QueryParam>
<QueryParam name="signature">{inputs.signature}</QueryParam>
<QueryParam name="locale">{inputs.locale}</QueryParam>
</QueryParams>
</Add>
<AssignTo createNew='false' transport='http' type='request'></AssignTo>
</AssignMessage>
And then another AssignMessage that looks like this:
<AssignMessage name='set-payload'>
<Set>
<Verb>POST</Verb>
<Payload contentType="application/json" variablePrefix="#" variableSuffix="$">#inputs.orders$</Payload>
<Path>TakeOrder</Path>
</Set>
<AssignTo createNew='false' transport='http' type='request'></AssignTo>
</AssignMessage>
TargetX
https://bla.xyzi/{request.uri}
but looking the trace, i can see the following:
<Get value="/api/iwsapi/TakeOrder?val=b81e&utcTimeStamp=2015-08-19T18%3A29%3A11Z&signature=167a9a1ab&locale=en&val=b81e&utcTimeStamp=2015-08-19T18%3A29%3A11Z&signature=167a9a1ab&locale=en" name="request.uri"/>
Why are the parameters duplicated?