简体   繁体   中英

Cannot Read JSON request body parameters in wso2 ESB as an api

I have created an API in the WSO2 ESB (4.8.1) and I wanted to send a PUT request to that API with a request body. I have tried with the sample and I wanted to log a property values in the insequence of the defined API.

This is my request body:

请求正文(JSON)

This is the way how I tried to log the location name:

XML日志

But I'm getting an error like this:

(ERROR - SynapseJsonPath #stringValueOf. Error evaluating JSON Path . Returning empty result. Error>>> invalid path)

错误截图

So how can I read these values?

To achieve your requirement, you should send the "Content-Type" HTTP header with the request like below,

    "Content-Type : application/json"

enter image description here

Then you can log the specific JSON element like below.

 <log>
    <property name="location" expression="json-eval($.coordinates.location[0].name)"></property>
 </log>

Then you can see following log,

enter image description here

Thanks.

If you want to get single variable from user in json request you can use this code 


Use This json:
    {

    "namee":"UsmanYaqooooooooooob"
    }


Api Code: 
        <api xmlns="http://ws.apache.org/ns/synapse" name="Hello" context="/hello">
           <resource methods="POST" uri-template="/post">
              <inSequence>
                 <log level="custom">
                    <property name="===========inSequence" value="****"></property>
                    <property name="locationsssssssss" expression="json-eval(.namee)"></property>
                 </log>
                 <payloadFactory media-type="json">
                    <format>{"hello":"world"}</format>
                    <args></args>
                 </payloadFactory>
                 <property name="messageType" value="text/xml"></property>
                 <respond></respond>
              </inSequence>
           </resource>
        </api>

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM