c# - REST 服务错误响应负载是否应与媒体类型一致

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

我有一个支持各种媒体类型(MIME 类型)的 REST 服务,例如 application/xmlapplication/jsonapplication/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/

相关文章:

c# stream wcf上传文件

c# - 获取本地保管箱同步状态

asp.net-mvc - ServiceStack 如何在 MyController<T> 上 Autowiring 自定义 IRepository<T> 属性

asp.net-mvc - 我可以从 MVC 中的 View 访问资源文件吗?

java - 仅适用于 S3 的自定义 aws 包装 jar

c# - 使用另一个集合实现一个集合

c# - EF SqlQuery 参数错误

asp.net - 使用框架使用 ASP.NET 进行开发

java - TomCat 上的 JAX-RS 总是返回 404

api - 我应该期望 HTTP DELETE 位于哪个 URI?