将异常映射到REST Web服务中的HTTP状态代码

时间:2008-11-20 11:32:57

标签: wcf http rest

在.NET中构建REST Web服务时,将 System.ArgumentNullException System.ArgumentException 映射到HTTP状态代码的最“RESTful”方式是什么?我的第一个猜测是使用带有适当描述的 HTTP 400 /错误请求

将异常映射到HTTP状态代码时,建议的最佳做法是什么?

2 个答案:

答案 0 :(得分:10)

一般情况下,4xx状态代码告诉客户端请求失败但如果请求我被修改可能会成功。 5xx代码告知客户客户端没有影响的问题。

所以你要做的第一个区别是4xx和5xx代码,即告诉客户端它是否应该重试。

如果请求确实是语法错误,不完整,矛盾或基本上错误,则应使用HTTP 400“错误请求”。 另外它可能是4xx范围内的有效默认状态,如果没有其他状态似乎合适,并且您认为客户端只需要修改请求即可成功。

答案 1 :(得分:1)

这取决于具体情况。例如。 ArgumentNullException可能源于违反的前提条件或是内部服务器错误。

此致 tamberg