Mule软数据组织

Mule软数据组织,mule,anypoint-studio,dataweave,mule-esb,Mule,Anypoint Studio,Dataweave,Mule Esb,我想写一个数据编织代码,如果数据为空,那么它应该路由到400。我该如何在Mule Soft中编写此内容 我的流程如下: HTTP-->Transformer-->记录器 转换器DW码 { 事件\操作\类型:有效负载。EDM \通用\消费者\消息。事件\元数据。事件\操作\类型 } 现在我要实现的是,如果“event\u ops\u type”为空,则路由到400(异常处理)您可以在transformer之后使用choice router来检查负载。event\u ops\u type==“400

我想写一个数据编织代码,如果数据为空,那么它应该路由到400。我该如何在Mule Soft中编写此内容

我的流程如下: HTTP-->Transformer-->记录器

转换器DW码 { 事件\操作\类型:有效负载。EDM \通用\消费者\消息。事件\元数据。事件\操作\类型 }


现在我要实现的是,如果“event\u ops\u type”为空,则路由到400(异常处理)

您可以在transformer之后使用choice router来检查负载。event\u ops\u type==“400”。然后,为异常处理引发自定义异常或根据
事件操作类型设置响应状态和原因。

您可能需要尝试使用验证模块。MuleSoft文档


您还可以在选择块中使用Groovy脚本来抛出任何您想要的异常。在这里,它将实际抛出一个404,其中包含API生成的异常处理。您可以将此切换到任何您想要的异常



我使用Groovy组件尝试了第二种方法:我有以下查询1。用Groovy编写的脚本如何使用带有脚本的choice路由器将流重定向到“引用异常策略”并不理想。它完成与验证组件相同的任务,但需要更多的代码。我想补充一点,如果您使用的是API工具包,并且希望返回404,那么应该抛出的异常是:
org.mule.module.apikit.exception.NotFoundException
。这将使用apiKitGlobalExceptionMapping,这样您就不需要编写任何自定义代码来返回404。