我有一个支持各种媒体类型(MIME 类型)的 REST 服务,例如 application/xml
、application/json
、application/vnd.ms- excel
, text/plain
.该服务由浏览器请求以及应用程序代码中的 HTTP 客户端使用。
但是,在使用此 REST 服务时,我的客户端代码需要以一致的方式处理错误。为此,错误负载必须采用一致的媒体类型,如 JSON,以便可以反序列化。
所以我的问题是,如果我返回一个与请求的媒体类型不一致的错误负载,我是否违反了任何 RESTful 最佳实践?如果不是,我应该使用什么格式? JSON?
更新
澄清一下,当我说错误负载时,我指的是状态不是 200 并且需要包含错误详细信息的响应正文。
最佳答案
首先,错误不必包含负载。只返回 401 之类的状态代码和一个空的响应主体是完全合理的。但是,如果您需要返回负载,则错误的响应应该与成功的预期类型相同。换句话说,如果客户端请求 JSON,则在成功和错误时都返回 JSON。同样,如果请求 XML,则错误响应应为 XML。
关于c# - REST 服务错误响应负载是否应与媒体类型一致,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31709752/