Forum Discussion
Thanks for response and sorry for the confusion
We are trying to add the add the additional parameter as env=ENV1
The incoming request from the client looks like : http://localhost:8090/oauth2?username=ABCD&password=Test123
The requirement is to add addtional parameter env=ENV1 to the incoming request like : http://localhost:8090/oauth2?username=ABCD&password=Test123&env=ENV1
I tried to add the below script to the Events (however it did not work) and then later I tried to add the same script to the "OnRequest Script" where we are trying to extract the query parameters and then passed query property to the "Route to" option as : https://HOSTNAME?${query}&env=ENV1
Please see the screen-shot.However, it did not work.
def incomingRequest = mockRequest.httpRequest
def path = mockRequest.path
def query = mockRequest.queryString
context.setProperty("query", query)
Below is the error what I see in the http logs :
POST /?scope=full&grant_type=password&username=ABCD&password=Test123&env=ENV1/as/token.oauth2?scope=full&grant_type=password&username=ABCD&password=Test123 HTTP/1.1
I am new to the ReadyAPI ServiceV. If you think this can be achieved by a different method please help with it.
Hi,
Thank you for the detailed description and the screenshot.
It is my current understanding that you need this:
-- If the request to your virtualized service contains /oauth2 in the path then extra parameter must be added to the query string and the request must be routed;
-- Otherwise the request must not be routed.
If my above understanding is correct, then I would try to follow the scenario described in this help topic: https://support.smartbear.com/readyapi/docs/servicev/routing/conditional.html
I.e.:
-- Set Route Options for the virtual service to either Route to or Route Non-Virtualized Requests according to what works best for you and as per https://support.smartbear.com/readyapi/docs/servicev/routing/about.html#setting-up-routing description;
-- For the required request, set Routing Options to Conditional;
-- Enter this code into the Routing Options script code window that will appear on the right:
if (! mockRequest.path.contains('/oauth2'))
return false; // do not route the request
mockRequest.queryString += '&env=ENV1';
log.info 'DEBUG: Modified query string - ' + mockRequest.queryString;
return true; // route the request
Does this help?