在.NET中构建REST Web服务时,将 System.ArgumentNullException 和 System.ArgumentException 映射到HTTP状态代码的最“RESTful”方式是什么?我的第一个猜测是使用带有适当描述的 HTTP 400 /错误请求。
将异常映射到HTTP状态代码时,建议的最佳做法是什么?
答案 0 :(得分:10)
一般情况下,4xx状态代码告诉客户端请求失败但如果请求我被修改可能会成功。 5xx代码告知客户客户端没有影响的问题。
所以你要做的第一个区别是4xx和5xx代码,即告诉客户端它是否应该重试。
如果请求确实是语法错误,不完整,矛盾或基本上错误,则应使用HTTP 400“错误请求”。 另外它可能是4xx范围内的有效默认状态,如果没有其他状态似乎合适,并且您认为客户端只需要修改请求即可成功。
答案 1 :(得分:1)
这取决于具体情况。例如。 ArgumentNullException可能源于违反的前提条件或是内部服务器错误。
此致 tamberg