Ebrahim Talaq
Ebrahim Talaq

Reputation: 179

how to pass query URL in wso2esb to endpoint

I'm having the following API configured in WSO2ESB:

   <api xmlns="http://ws.apache.org/ns/synapse" name="service" context="/service">
   <resource methods="POST">
      <inSequence>
         <call>
            <endpoint>
               <http method="POST" uri-template="https://webapps.localhost/service.php"/>
            </endpoint>
         </call>
         <send/>
      </inSequence>
      <outSequence>
         <send/>
      </outSequence>
      <faultSequence>
         <log level="full"/>
      </faultSequence>
   </resource>
</api>

The call works fine and POST content goes fine to the endpoint.

curl -X POST -d "a=1&b=2" localhost:8280/service

from the service.php file I can extract POST parameters fine.

Now if I want to have dynamic GET parameters passed as is to the endpoint, what would be the way to do it?

curl -X POST -d "a=1&b=2" localhost:8280/service?c=3&d=4

I know (at least what i understood) property mediator could be used but this is for known parameters in the query url (for example, $url:c) but I don't want to limit it, just pass the query url as is to the destination endpoint.

Any help would be appreciated.

Upvotes: 2

Views: 1468

Answers (3)

Saad Sahibjan
Saad Sahibjan

Reputation: 300

You can access the resource path through REST_URL_POSTFIX

<property name="path" expression="$axis2:REST_URL_POSTFIX"/>

According to your request URL, $ctx:path should contain ?c=3&d=4

Upvotes: 1

hedz
hedz

Reputation: 111

Usually what I do is defining two variables on the endpoint's URI template, and then use the property mediators to set them.

Something like

<http method="POST" uri-template="https://webapps.localhost/service?c={uri.var.c}&d={uri.var.d}"

Then use the property mediator to set the property uri.var.c and uri.var.d with the intended values.

Upvotes: 0

Ebrahim Talaq
Ebrahim Talaq

Reputation: 179

Just to update here, use Address EndPoint instead of HTTP EndPoint (which is based on URI-Template)

Upvotes: 0

Related Questions