Mulesoft API 如果没有找到记录,如何 return 404

Mulesoft API how to return 404 if no records found

我正在使用 Mulesoft Anypoint 创建 REST API 端点。我有一个资源,我对后端数据库的调用 returns 没有记录。

例如http://myhostname/players/1234 - 系统中不存在玩家1234。

我的理解是,对于基于 REST 的方法,这应该 return 404,因为请求的资源(玩家 1234)不存在。

我不清楚如何在 Anypoint Studio 的流程中处理此响应,基于从我的后端接收到一个空数组的 json 文档,如何将其转换为对 [= 的 404 响应23=] 使用 API 套件路由器

我假设您已经使用 RAML 文件指定了您的接口,并且您已经从中生成了流程。

在包含结果数组或空数组的流程中放置一个验证器:

<validation:is-not-empty message="Not Found" 
      exceptionClass="org.mule.module.apikit.exception.NotFoundException" 
      value="#[payload]" doc:name="Validate not empty"/>

生成的异常映射将 NotFoundException 转换为 404。您可以在异常映射中配置准确的答案。默认是 JSON 文档 { "message": "Resource not found" }