REST服务错误响应有效负载是否应与媒体类型保持一致

时间:2015-07-29 19:45:09

标签: c# asp.net-mvc rest error-handling mime-types

我有一个支持各种媒体类型(MIME类型)的REST服务,例如application/xmlapplication/jsonapplication/vnd.ms-exceltext/plain。浏览器请求以及应用程序代码中的HTTP客户端使用此服务。

但是,在使用此REST服务时,我的客户端代码需要以一致的方式处理错误。要做到这一点,错误有效负载必须是一致的媒体类型,如JSON,因此可以反序列化。

所以我的问题是,如果我返回的错误有效负载与请求的媒体类型不一致,我是否会破坏任何RESTful最佳实践?如果没有,我应该使用什么格式? JSON?

更新

澄清一下,当我说错误有效载荷时,我指的是状态不是200且需要包含错误详情的响应主体。

1 个答案:

答案 0 :(得分:2)

首先,错误不必包含有效负载。仅使用空响应主体返回状态代码(如401)是完全合理的。但是,如果需要返回有效负载,则错误的响应应与预期的成功类型相同。换句话说,如果客户端请求JSON,则在成功和错误时都返回JSON。同样,如果请求XML,则错误响应应为XML格式。