Mule ESB中有效负载的验证

Mule ESB中有效负载的验证,mule,esb,anypoint-studio,dataweave,Mule,Esb,Anypoint Studio,Dataweave,我有一个HTTP POST请求,它发送一个负载,如下所示: {“key1”:“value1”,“key2”:“value2”,“key3”:“value3”} 我能够验证所有的值,但每次我都必须使用一个组件。 在本例中,我使用了验证器“nota blank string”3次 1. Is there any way that I can validate all the three values in a single validator ? 2. Should I use Scatter-

我有一个HTTP POST请求,它发送一个负载,如下所示:

{“key1”:“value1”,“key2”:“value2”,“key3”:“value3”}

我能够验证所有的值,但每次我都必须使用一个组件。 在本例中,我使用了验证器“nota blank string”3次

1. Is there any way that I can validate all the three values in a single validator ? 
 2. Should I use Scatter-Gather for validating all the values in parallel(according to best-practices) ?
 3. How can I validate the key set(the key set should only contain "key1", "key2" and "key3"  ?
更新: 我已经使用connector setVariable获取了密钥集

编辑:
可以从exchange下载JSON验证程序。搜索JSON模块

我做了一个小示例来演示JSON验证器是如何工作的。你可以用同样的方法

  • 转到或任何联机json模式生成器,并为json文件生成json模式
  • 将此模式保存到扩展名为.json的文件中,并将其放在src/main/resources文件夹中
  • 实现模式验证并引用您的模式,传入的json将根据模式自动进行验证,因此您不必使用任何分散-聚集或每个单独的键值对验证。
  • 下面是针对我的流使用不同json输入的一些响应

  • 您可以随时增强模式以满足您的需要。可以为每个键定义数据类型。假设key3应该只包含数值,key2应该是一个数组。所有这些都可以通过修改模式来实现,验证器将相应地验证传入的json

    更新:以下是mule流的xml内容

    <flow name="stackoverflowFlow1" doc:id="c24d34aa-ce1d-4bbb-b3fd-d73007dad60b" >
            <http:listener doc:name="Listener" doc:id="80ab5db5-1d3e-409f-9990-cebf1fc07dd5" config-ref="HTTP_Listener_config" path="/valid"/>
            <json:validate-schema doc:name="Validate schema" doc:id="0a51cde0-5175-4f11-b972-3d5d708094c6" schema="schema.json"/>
            <logger level="INFO" doc:name="Logger" doc:id="2d95a6f0-8f88-4608-bdb8-7fae8abc0e6d" message="valid json"/>
        </flow>
    
    
    
    为什么不使用json验证器?@afelisati在使用json验证器Hanks回答我的问题时,我们可以获得自定义错误消息。在我的AnyPointStudio(7.3版)中,我只能看到xml验证器。我将在哪个版本的anypoint studio中找到json验证器?如果可能的话,您可以共享此流程背后生成的xml吗?我使用的是studio 7.4版,但我也在旧版本(如6.6)中使用了此功能。在托盘中搜索架构验证程序。。我可以共享xml。当然我将把它附在我的答案上。我必须从Exchange下载它。我在JSON模块中找到了它。非常感谢您的帮助:)我们可以为每个键提供自定义错误消息吗?例如:“key1是必需的”,而不是给出json不符合模式的一般消息