资源/ user/12345不存在.让我们说消费者正在随机尝试不同的ID.没有授权.任何用户都可以查看任何用户.从更广泛的意义上讲,我的问题是"如果您对不存在的资源进行GET,您应该返回什么?"
我应该为一个不存在的id返回一个空用户,还是应该返回一个包含正确状态代码的错误消息?
什么是典型/通常/推荐的做法?
sti*_*att 12
这取决于您的安全问题.如果guesser确定该用户id是否不存在,我会发送404,或者对/ user下任何资源的未经身份验证的访问发送401
@Byron是对的,返回HTTP 404.您希望利用HTTP的所有功能,其中包括响应状态代码.因此,如果存在客户端错误,则返回4xx错误代码,如果您的服务器代码存在内部问题,则返回5xx错误代码等.
Richardson和Ruby的RESTful Web服务(O'Reilly)对此进行了很好的讨论,并附带了所有最重要的HTTP错误代码以及何时使用它们.