【发布时间】:2019-08-16 22:25:18
【问题描述】:
我正在 WSO2 EI/ESB 中构建一个简单的 API。我将每个请求参数保存到如下属性:
<property expression="json-eval($.client_id)" name="client_id" scope="default" type="STRING"/>
然后使用有效负载工厂构建有效负载:
<payloadFactory media-type="json">
<format>
{
"req_type": "1",
"client_id": $1
}
</format>
<args>
<arg evaluator="xml" expression="get-property('client_id')"/>
</args>
</payloadFactory>
但是,如果我发送了一条空消息 {}(没有 client_id),则 $1 参数中不会放置任何内容,并且生成的有效负载将无法验证:
{
"req_type": "1",
"client_id:
}
我想知道的是,在属性调解器中保存这个表达式时,是否有办法设置默认值?例如:
<property expression="json-eval($.client_id)" name="client_id" scope="default" type="STRING" defaultValue="0"/> 或类似的东西。
我知道我可以实施过滤器来检查字段是否存在并对其进行验证,但我发现这可能会变得有点混乱。
【问题讨论】:
标签: wso2 wso2esb wso2ei synapse