一次验证JSON请求,而不是在WSO2 ESB中一一验证

时间:2018-10-23 10:52:31

标签: json wso2 wso2esb

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

ex:说json字段 {

“名字”:“ abcd”,

“ eid”:“ 566”,

“ zip”:“ 698”

}

当我通过请求时,假设我所有的字段都是错误的,它应该只抛出firstname元素,我需要一次在wso2 esb中抛出所有三个元素错误,在此先感谢。

2 个答案:

答案 0 :(得分:0)

“ ...我的所有字段都错了...”是什么意思?您是否正在验证字段的值?或消息的结构不正确,即“名字”不应出现在哪里? 您能提供样品顺序吗?

答案 1 :(得分:0)

您可以为消息创建适当的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>