Forum Discussion
Hi ronaksomani,
Can you add the JSON payload as a request parameter? If you do that, then you can use the http.request.parameters object to get the parameter from the request. If your parameter name is "jsonpayload", you would use the following:
<#assing jsonStr = http.request.parameters.name.get("jsonpayload", "") />
If you are just passing the JSON along to another API call (using http.client), I think it makes sense to use this approach. If however you are using the JSON string to store parameters to pass to your endpoint, you might want to consider just passing the parameters themselves instead of using a JSON object. Converting a JSON string to something usable in your endpoint might be tricky, because you need to make sure you do so in a way that does not open your endpoint up to being used for script injection.
-Doug
Hi DougS,
Thanks for response.
I cannot add JSON payload as request parameter, as I do not have control over that code. Thus not able to retrieve it with parameter name.
I was looking for approach, where I can retrieve complete Request body, and pass it on to request body for http.client call.
- DougS9 years agoKhoros Oracle
Just to make sure understand this, you do not have control over the client-side logic that is going to be submitting the request to the endpoint you are creating, and whoever controls that code will not be able to modify it to send the JSON as a request parameter instead of in the request body (payload), correct?
Unfortunately we do not currently have a way to parse a request payload from the request via Freemarker. While we do have methods in the http.request object to get request parameters and request headers, we do not currently provide a way to get the entire request body. You could work with our Professional Services group - they are able to add a java-based endpoint that could do this until we have provided a way to do this via Freemarker.
- luk6 years agoBoss
DougS were there any methods added since 2016 that would allow to read a JSON payload in a request body via FreeMarker? Have the same scenario like OP. Sending data that way is quite common for third party API's when sending data via webhook-functionality, e.g. sending back data to some endpoint/webhook after something was done on their platform...
- DougS6 years agoKhoros Oracle
Hi luk ,
Unfortunately we have not added a way to do this yet, but I have taken to heart how long it has been and have added a pull request to add in support for parsing the request body (named http.request.body, in endpoints only) and a utils object for converting to/from a JSON string to a Freemarker hash (utils.json.toJson(hash) and utils.json.fromJson(string)).
I'll update this post once I know what version of the Community product it will go into.
Thanks,
-Doug
Related Content
- 8 years ago
- 12 years ago