WSO2 ESB - 开关调解器,带编号的条件
WSO2 ESB - Switch mediator, condition with number
我正在研究 API,我想添加一个条件 "higher than",如下所示:
<switch source="$ctx:myValue">
<case regex="$ctx:myValue > 1000">
...
</case>
<default/>
</switch>
你知道如何做到这一点吗?谢谢:)
我自己回答了我的问题。
我使用了这样的脚本中介:
<script language ="js">
<![CDATA[
var nbResultatJS = mc.getProperty('nbMessage');
var isSuperiorJS = 0;
if(nbResultatJS > 1000){
isSuperiorJS = 1;
}
mc.setProperty('isSuperior', isSuperiorJS);
]]>
</script>
<log level="custom">
<property name="MSG" expression="$ctx:isSuperior"/>
</log>
<switch source="$ctx:isSuperior">
<case regex="1.0">
...
</case> </script>
试用过滤器调解器。
<filter xpath="get-property('myValue') > 1000">
<then>
... do something
</then>
<else>
... do something else
</else>
</filter>
或者,对于 switch 中介,值为 1000 或更大的简单正则表达式将是
[1-9][0-9]{3,}
然而,更具体的要求将需要更复杂的正则表达式。因此,在这种情况下,最终过滤器调解器可能是您的最佳选择。
我正在研究 API,我想添加一个条件 "higher than",如下所示:
<switch source="$ctx:myValue">
<case regex="$ctx:myValue > 1000">
...
</case>
<default/>
</switch>
你知道如何做到这一点吗?谢谢:)
我自己回答了我的问题。
我使用了这样的脚本中介:
<script language ="js">
<![CDATA[
var nbResultatJS = mc.getProperty('nbMessage');
var isSuperiorJS = 0;
if(nbResultatJS > 1000){
isSuperiorJS = 1;
}
mc.setProperty('isSuperior', isSuperiorJS);
]]>
</script>
<log level="custom">
<property name="MSG" expression="$ctx:isSuperior"/>
</log>
<switch source="$ctx:isSuperior">
<case regex="1.0">
...
</case> </script>
试用过滤器调解器。
<filter xpath="get-property('myValue') > 1000">
<then>
... do something
</then>
<else>
... do something else
</else>
</filter>
或者,对于 switch 中介,值为 1000 或更大的简单正则表达式将是
[1-9][0-9]{3,}
然而,更具体的要求将需要更复杂的正则表达式。因此,在这种情况下,最终过滤器调解器可能是您的最佳选择。