Я строю простой API в WSO2 EI / ESB.Я сохраняю каждый из параметров запроса в свойствах, таких как:
<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"/>
или что-то в этом роде.
Я знаю, что могу реализовать фильтры, чтобы проверить, существует ли поле, и проверить его, но я считаю, что это может стать немного загроможденным.