ESB 中有效负载的验证
Validation of Payload in ESB
我有一个 HTTP POST REQUEST 发送有效载荷如下:
{ "key1" : "value1", "key2" : "value2" ,"key3": "value3" }
我能够验证所有值,但我每次都必须使用一个组件。
在这种情况下,我使用了验证器 "Not a 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" ?
更新:
我已经使用连接器 setVariable 获取了密钥集
编辑:
JSON验证器可以从交易所下载。搜索 JSON 模块
我做了一个小样本来演示 json 验证器是如何工作的。你可以使用相同的
- 转到 https://jsonschema.net/ 或任何在线 json 模式生成器并为您的 json 文件生成 json 模式。
- 将此模式与扩展名为 .json 的文件相同,并将其放在 src/main/resources 文件夹中。
- 实施架构验证并引用您的架构,您的传入 json 将根据架构自动进行验证,因此您不必使用任何分散-收集或每个单独的键值对验证。
这里有一些针对我的流量
的不同 json 输入的响应
您可以随时增强架构以满足您的需求。您可以为每个键定义数据类型。可以说 key3 应该只包含数值,key2 应该是一个数组。任何类似的事情都可以通过修改您的模式来实现,验证器将相应地验证传入的 json。
update:这里是mule flowxml的内容
<flow name="WhosebugFlow1" 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>
我有一个 HTTP POST REQUEST 发送有效载荷如下:
{ "key1" : "value1", "key2" : "value2" ,"key3": "value3" }
我能够验证所有值,但我每次都必须使用一个组件。 在这种情况下,我使用了验证器 "Not a 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" ?
更新:
我已经使用连接器 setVariable 获取了密钥集
编辑: JSON验证器可以从交易所下载。搜索 JSON 模块
我做了一个小样本来演示 json 验证器是如何工作的。你可以使用相同的
- 转到 https://jsonschema.net/ 或任何在线 json 模式生成器并为您的 json 文件生成 json 模式。
- 将此模式与扩展名为 .json 的文件相同,并将其放在 src/main/resources 文件夹中。
- 实施架构验证并引用您的架构,您的传入 json 将根据架构自动进行验证,因此您不必使用任何分散-收集或每个单独的键值对验证。
这里有一些针对我的流量
的不同 json 输入的响应您可以随时增强架构以满足您的需求。您可以为每个键定义数据类型。可以说 key3 应该只包含数值,key2 应该是一个数组。任何类似的事情都可以通过修改您的模式来实现,验证器将相应地验证传入的 json。
update:这里是mule flowxml的内容
<flow name="WhosebugFlow1" 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>