как передать URL запроса в wso2esb в конечную точку - PullRequest
0 голосов
/ 10 июня 2018

В WSO2ESB настроен следующий API:

   <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>

Вызов работает нормально, а содержимое POST отправляется в конечную точку нормально.

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

из service.phpФайл, который я могу извлечь параметры POST отлично.

Теперь, если я хочу, чтобы динамические параметры GET передавались в конечную точку как есть, каков будет способ сделать это?

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

Я знаю(по крайней мере, то, что я понял) можно использовать посредник свойства, но это для известных параметров в URL запроса (например, $ url: c), но я не хочу его ограничивать, просто передайте URL запроса как естьконечная точка назначения.

Буду признателен за любую помощь.

Ответы [ 3 ]

0 голосов
/ 18 июня 2018

Обычно я определяю две переменные в шаблоне URI конечной точки, а затем использую медиаторы свойства для их установки.

Что-то вроде

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

Затем используем медиатор свойства дляустановите свойства uri.var.c и uri.var.d с необходимыми значениями.

0 голосов
/ 19 июня 2018

Вы можете получить доступ к пути к ресурсу через REST_URL_POSTFIX

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

Согласно URL вашего запроса, $ctx:path должен содержать ?c=3&d=4

0 голосов
/ 11 июня 2018

Просто чтобы обновить здесь, используйте Address EndPoint вместо HTTP EndPoint (который основан на URI-шаблоне)

...