【问题标题】:Mulesoft API how to return 404 if no records found如果找不到记录,Mulesoft API 如何返回 404
【发布时间】:2017-04-27 22:21:59
【问题描述】:

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

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

我的理解是,对于基于 REST 的方法,这应该返回 404,因为请求的资源(播放器 1234)不存在。

我不清楚如何在 Anypoint Studio 的流程中处理此响应,基于从我的后端接收一个带有空数组的 json 文档,如何将其转换为 404 响应以使用 APIKit 路由器返回

【问题讨论】:

    标签: mule mule-studio


    【解决方案1】:

    我假设您已经使用 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" }

    【讨论】:

    • 如果您在流程中执行此验证,请务必使用参考 APIKits 异常处理策略。
    猜你喜欢
    • 1970-01-01
    • 2021-11-24
    • 2015-02-14
    • 2013-07-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多