Проверка JSON-запроса за раз вместо одного за другим в WSO2 ESB - PullRequest
0 голосов
/ 23 октября 2018

Мое требование - проверять запрос JSON iNPUT поочередно, а не по одному.

ex: Say json fields {

"firstname": "abcd",

"eid": "566",

"zip": "698"

}

ПРИНЯТЬ все мои поля неверны, когда я передаю запрос, он долженвыбрасывать только элемент имени, мне нужно выбросить все три элемента за раз в wso2 esb, заранее спасибо.

1 Ответ

0 голосов
/ 24 октября 2018

вы можете создать соответствующую XSD-схему для вашего сообщения и использовать медиатор Validate, или вы можете создать свойство для сообщения об ошибке и объединить все необходимые сообщения об ошибках, например

<property name="error" expression=""/>
<filter source="json-eval($.firstname)" regex="...your condition on first name">
   <then>
<property name="error" value="firstname is not valid!"/>
   </then>
   <else> 
   </else>
</filter>
<property name="error" expression=""/>
<filter source="json-eval($.eid)" regex="...your condition on eid">
   <then>
<property name="error" expression="fn:concat(get-property('error'),' eid is not valid!')"/>
   </then>
   <else> 
   </else>
</filter>
<filter source="json-eval($.zip)" regex="...your condition on eid">
   <then>
<property name="error" expression="fn:concat(get-property('error'),' zip is not valid!')"/>
   </then>
   <else> 
   </else>
</filter>
<filter source="get-property('error')" regex="^$">
   <then>

    ...sending error...

   </then>
   <else> 
   </else>
</filter>
...