我想编写一个数据编织代码,如果数据为空,则应路由到400。如何在Mule Soft中编写此代码?
我的流程如下: HTTP-> Transfomer->记录器
Transformer DW代码 { event_ops_type:有效负载.EDM_generic_consumer_message.event_meta_data.event_operation_type }
现在我要实现的是如果“ event_ops_type”为null,然后路由到400(异常处理)?
答案 0 :(得分:1)
您可能想尝试使用验证模块。 MuleSoft文档here。
<validation:is-not-null message="event_ops_type is null!" value="#[flowVars.event_ops_type]" exceptionClass="com.example.MyException" doc:name="Validation"/>
您还可以在选择块中使用Groovy脚本引发任何您想要的异常。在这里,它将使用API生成的异常处理实际抛出404。您可以将其切换为所需的任何例外。
<choice doc:name="Choice">
<when expression="#[flowVars.event_ops_type != null]">
<logger message="#[flowVars.event_ops_type]" level="INFO" doc:name="Logger"/>
</when>
<otherwise>
<scripting:component doc:name="Groovy">
<scripting:script engine="Groovy"><![CDATA[throw new org.mule.module.apikit.exception.NotFoundException(flowVars['event_ops_type'] + " is null!"); ]]></scripting:script>
</scripting:component>
</otherwise>
</choice>
<exception-strategy ref="api-apiKitGlobalExceptionMapping" doc:name="Reference Exception Strategy"/>
答案 1 :(得分:0)
您可以在变压器之后使用选择路由器来检查payload.event_ops_type == "400"
。然后要么针对异常处理引发自定义异常,要么根据event_ops_type
400设置响应状态和原因。