来自外部源的请求到wso2 esb(版本4.8.0)有多个字段。作为验证的一部分,我们需要在处理请求之前验证wso2中的必填字段。请问任何人请告诉我在wso2中验证这些字段的方式和位置(文件)。
示例请求是:
{
"name" : "abc",
"studentId" : {
"id1" : "testid",
"id2" : "11234",
"id3" : "6781"
},
"details" : [
{
"dateOfBirth" : "01-01-2016"
}]
其中id1,id2,id3和dateOfBirth是必须在resresst来到wso2 esb时验证的字段。
答案 0 :(得分:0)
您可以使用一些过滤器调解器来执行此操作。
由于JSON有效负载在ESB中被视为SOAP消息,因此您的请求有效负载可能是这样的,
<soapenv:Body xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<jsonObject>
<name>abc</name>
<studentId>
<id1>testid</id1>
<id2>testid</id2>
<id3>testid</id3>
</studentId>
<details>
<dateOfBirth>01-01-2016</dateOfBirth>
</details>
<details>
<dateOfBirth>01-01-2012</dateOfBirth>
</details>
</jsonObject>
</soapenv:Body>
使用过滤介质如下所示验证请求中所需的键/值。
<!-- xPath boolean() function may evaluate to false if value of id1 is empty/null or request doesn't have that key. -->
<filter regex="false" source="boolean(//jsonObject/studentId/id1)">
<then>
<!-- Generate Error message for id1-->
</then>
<else>
<filter regex="false" source="boolean(//jsonObject/studentId/id2)">
<then>
<!-- Generate Error message for id2-->
</then>
<else>
<!-- more filters -->
</else>
</filter>
</else>
</filter>