从wso2中的'To'操作获取字符串

时间:2018-10-25 11:18:26

标签: api wso2 wso2esb wso2ei

我像这样在wso2ei中创建了一个api:

<api xmlns="http://ws.apache.org/ns/synapse" name="Test" context="/Test" version="/" version-type="context">
 <resource methods="POST" url-mapping="/CheckTest" inSequence="TestSequence">
  <outSequence>
    <send/>
  </outSequence>
 </resource>
 <resource methods="POST" url-mapping="/TransferTest" inSequence="TestSequence">
  <outSequence>
    <send/>
  </outSequence>
 </resource>
</api>

在将消息发送到序列后,我想获取url映射值作为属性。 “到”操作对于CheckTest是/ Test / CheckTest,对于TransferTest是/ Test / TransferTest。我想获取url映射值或动态选择的资源。我该怎么办?

<property name="urlMappingValue" expression=?/>

1 个答案:

答案 0 :(得分:2)

您需要使用带有uri-template的资源,然后通过uri.var访问uri在属性中的部分。

<api xmlns="http://ws.apache.org/ns/synapse" name="Test" context="/Test">
   <resource methods="POST" uri-template="/{method}">
      <inSequence>
         <property name="method" expression="get-property('uri.var.method')" scope="default" type="STRING"/>
         <switch source="get-property('uri.var.method')">
            <case regex="CheckTest">
                 ... Your logic for Check Test...
            </case>
            <case regex="TransferTest">
                 ... Your logic for Transfer Test...
            </case>           
         </switch>
      </inSequence>
   </resource>
</api>