как передать URL-адрес запроса в wso2esb в конечную точку

У меня настроен следующий API в 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>

Вызов работает нормально, и содержимое 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-адрес запроса как есть до конечной точки назначения.

Любая помощь будет оценена по достоинству.


person Ebrahim Talaq    schedule 10.06.2018    source источник
comment
Он должен работать из коробки. См. docs.wso2.com /дисплей/ESB480/   -  person Bee    schedule 10.06.2018


Ответы (3)


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

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

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

person Saad Sahibjan    schedule 19.06.2018

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

person Ebrahim Talaq    schedule 11.06.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 с предполагаемыми значениями.

person hedz    schedule 18.06.2018