Mule Apikit-状态代码最佳实践

Mule Apikit-状态代码最佳实践,mule,Mule,使用Mule中的APIKit,如果在执行流时找不到特定资源,我需要返回404状态代码 我可以看到三种处理方法: 抛出自定义业务异常(使用groovy脚本),即 PersonNotFoundException并使用 apikit:映射异常策略以将该异常映射到“404” 抛出现有的Mule异常 org.mule.module.apikit.exception.NotFoundException已被删除 映射到“404” 不要抛出异常并手动设置http响应和 我的邮件正常流中的状态代码 这里的最佳实践

使用Mule中的APIKit,如果在执行流时找不到特定资源,我需要返回404状态代码

我可以看到三种处理方法:

  • 抛出自定义业务异常(使用groovy脚本),即 PersonNotFoundException并使用 apikit:映射异常策略以将该异常映射到“404”

  • 抛出现有的Mule异常 org.mule.module.apikit.exception.NotFoundException已被删除 映射到“404”

  • 不要抛出异常并手动设置http响应和 我的邮件正常流中的状态代码


  • 这里的最佳实践是什么?是否为流控制使用异常?如果是这样的话,请使用Mule异常或自定义业务异常?

    我认为这是API最佳实践和Mule最佳实践之间奇怪的组合之一

    对于一般资源,即“/users”,我将使用Mule Not Found异常(404),但对于不存在的项资源,即“/users/jim smith”,出于可用性目的,我将抛出一个自定义异常,其中包含“请求的用户不存在”或“您没有访问此用户的权限”(状态401)无论是哪种情况,都可以最好地帮助开发人员利用您的API

    我认为异常策略的最大优势在于它创建了一个清晰的流程,您可以轻松确定什么是成功的响应,什么是失败的响应,而不是自己手动更改响应

    使用Mule中的异常处理程序,您可以向用户返回统一的错误响应(JSON、XML等)

    但是其他人可能不同意我的观点,仅仅手动设置状态代码和响应本身就提供了最大的灵活性,但也允许不一致