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

然而,更具体的要求将需要更复杂的正则表达式。因此,在这种情况下,最终过滤器调解器可能是您的最佳选择。