REST to SOAP Conversion is Errornous

Not applicable

Dear Friends,

I had converted my WSDL to REST. After That I called First REST SERVICE i.e. http://shoppie-test.apigee.net/v2/login?username=admin&apiKey=xxxxxxxxxxxxxxxxxxxxxxxxxxxx This one returned me a session ID No when when i use this Session ID to call second REST Service I get a Message "Session Expired" which should not come because if i use same session id (which i get in first call) for SOAP call from SOAP Client through my desktop i get accurate results. Second API call is :- http://shoppie-test.apigee.net/v22/shoppingcartcreate?sessionId=942ae85ded75cab658c753c357c99b80&sto... Please let me know why this issue is coming ?? WSDL URL - http://test.shoppiemall.in/api/v2_soap/?wsdl

As per my understanding parameters extracted from REST Service but not inserted in SOAP call as per I traced my REST call from Developer Console.

Please Help Regards, Saurabh

Solved Solved
0 2 900
1 ACCEPTED SOLUTION

Not applicable

Hi Saurabh,

The generated policy of your proxy for your WSDL to read the request is below. As you can see, the proxy is expecting the sessionId as a form parameter; you are passing the sessionid as a query parameter. You will need to do a POST with the content-type set to application/x-www-form-urlencoded, and have your request body set accordingly.

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ExtractVariables async="false" continueOnError="true" enabled="true" name="shoppingCartCreate-extract-form-param">
    <DisplayName>shoppingCartCreate Extract Form Param</DisplayName>
    <FormParam name="sessionId">
        <Pattern ignoreCase="true">{sessionId}</Pattern>
    </FormParam>
    <FormParam name="store">
        <Pattern ignoreCase="true">{store}</Pattern>
    </FormParam>
    <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables>
</ExtractVariables>

Charles

View solution in original post

2 REPLIES 2

Not applicable

Hi Saurabh,

The generated policy of your proxy for your WSDL to read the request is below. As you can see, the proxy is expecting the sessionId as a form parameter; you are passing the sessionid as a query parameter. You will need to do a POST with the content-type set to application/x-www-form-urlencoded, and have your request body set accordingly.

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ExtractVariables async="false" continueOnError="true" enabled="true" name="shoppingCartCreate-extract-form-param">
    <DisplayName>shoppingCartCreate Extract Form Param</DisplayName>
    <FormParam name="sessionId">
        <Pattern ignoreCase="true">{sessionId}</Pattern>
    </FormParam>
    <FormParam name="store">
        <Pattern ignoreCase="true">{store}</Pattern>
    </FormParam>
    <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables>
</ExtractVariables>

Charles

Not applicable

Thanks @Coverbeck will check and get back to you .