我有一个 HTTP POST REQUEST,它发送如下有效负载:
{ "key1" : "value1", "key2" : "value2" ,"key3": "value3" }
我能够验证所有值,但每次都必须使用一个组件。 在本例中,我使用了验证器“非空字符串”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" ?
更新: 我已使用连接器 setVariable 获取了 key 集
编辑: JSON验证器可以从交易所下载。搜索 JSON 模块
最佳答案
我做了一个小样本来演示 json 验证器的工作原理。你可以使用相同的
- 转到https://jsonschema.net/或任何在线 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>
关于mule - ESB 中有效负载的验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59318278/