WSO2 ESB - Переключатель медиатор, условие с номером - PullRequest
0 голосов
/ 05 декабря 2018

Я работаю над API и хотел бы добавить условие «выше чем», например:

<switch source="$ctx:myValue">
<case regex="$ctx:myValue > 1000">
...
</case>
<default/>
</switch>

У вас есть идеи, как выполнить это условие?Спасибо:)

Ответы [ 2 ]

0 голосов
/ 06 декабря 2018

Попробуйте посредник Filter.

<filter xpath="get-property('myValue') > 1000">
   <then>
     ... do something
   </then>
   <else>
      ... do something else
   </else>
</filter>

Или, в случае посредника коммутатора, простое регулярное выражение для значения 1000 или больше будет

[1-9][0-9]{3,}

Однако более конкретныйтребования будут призывать к более сложным регулярным выражениям.Так что, в конце концов, посредник с фильтром, вероятно, является лучшим выбором в этом случае.

0 голосов
/ 05 декабря 2018

Я сам ответил на свой вопрос.

Я использовал скрипт-медиатор, подобный этому:

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