首页 > 解决方案 > 一次验证 JSON 请求,而不是在 WSO2 ESB 中一一验证

问题描述

我的要求是一次验证 JSON iNPUT 请求,而不是一一验证。

例如:说 json 字段 {

“名字”:“abcd”,

“开斋节”:“566”,

“邮编”:“698”

}

假设我通过请求时所有字段都错误,它应该只抛出名字元素,我需要在 wso2 esb 中一次抛出所有三个元素错误,提前致谢。

标签: jsonwso2wso2esb

解决方案


您可以为您的消息创建适当的 XSD 架构并使用验证中介,或者您可以为错误消息创建属性并连接您需要的所有错误消息,例如

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

推荐阅读