Give the following a try and see if it helps. This example uses two different R/R Pairs of input data based upon your scenario:
Request 1:
GET /app/restResource/%7B%22key%22%3A%22123%22%2C%22tracks%22%3A%221234%22%7D HTTP/1.1
Host: api.themoviedb.org
Accept: application/json
<intentional blank line>
Response 1:
HTTP/1.1 200 OK
Content-Type:application/json;charset=utf-8
Connection:keep-alive
{"key":"123","tracks":"1234"}}}
Request 2:
GET /app/restResource/%7B%22key%22%3A%22abc%22%2C%22tracks%22%3A%221234%22%2C%22filter%22%3A%22no%22%7D HTTP/1.1
Host: api.themoviedb.org
Accept: application/json
<intentional blank line>
Response 2:
HTTP/1.1 200 OK
Content-Type:application/json;charset=utf-8
Connection:keep-alive
{"key":"abc","tracks":"1234","filter":"no"}
1) Generate the sample R/R Pairs above, and save them in a directory
2) Start the DevTest Workstation Recorder and build a Service from R/R Pairs
3) Configure the Wizard according to HTTP protocol, select the R/R Pairs directory, etc.
4) At the DPH configuration, add the following DPHs:
- REST DPH is used to parse the URI, the URL Encoded payload for the above pairs is placed in URLPARAM0
- The RDM DPH is used to move (or copy) URLPARAM0 to the Request Body. In this example, Copy was used.
- The Scriptable DPH is used to decode the URL encoded Body to get the information into JSON format
- The JSON DPH parses the JSON payload after it has been decoded
The generated VSI, based on the above R/R Pairs, has two different signatures. The URLPARAM0 argument was left in tact in the VSI because "Copy" was used rather than "Move" in the RDM DPH. In this case, URLPARAM0 contains the unaltered value that came in the request.