Rest 处理请求失败的HTTP响应

Rest 处理请求失败的HTTP响应,rest,http,http-status-codes,Rest,Http,Http Status Codes,假设我有一个休息POST结束点:www.foo.com/id/X,其中X表示一个数字 我的服务器端伪代码如下所示: performIdLookup(int id) { if ( idExists(id) ) { return toJson(lookup(id)) // returns 200/OK Status Code with object as JSON } else { return HTTP_???_error } } 因此,发送400错误似

假设我有一个休息
POST
结束点:
www.foo.com/id/X
,其中
X
表示一个数字

我的服务器端伪代码如下所示:

performIdLookup(int id) { 

  if ( idExists(id) ) {
     return toJson(lookup(id)) // returns 200/OK Status Code with object as JSON
  }
  else {
     return HTTP_???_error 
  }
}
因此,发送
400
错误似乎并不正确,因为用户提交了一个有效的请求,但服务器找不到它

这里正确的HTTP响应是什么?为什么?

这很简单

404 Not Found
如果
/id/42
上没有资源,则可以找不到此URL的资源


请参阅。

非400(错误请求)。但404(未找到)。是的,404不是我们在这些情况下经常看到的,但是您可以添加一些自定义信息并做出响应。

这是正确的错误404您现在应该记住404-正在进行web开发;p404还可以。顺便说一下,500是内部服务器error@ScottSelby500不应是未经身份验证的
500内部服务器错误
:“当遇到意外情况且没有更具体的消息时给出的一般错误消息。”@ScottSelby由于响应是JSON,因此看起来像REST API。对于这种情况,重定向不是一个好主意<代码>服务器未找到任何与请求URI匹配的内容我不理解您对此文本的回答。是因为没有
资源
住在
X
id
处吗?@KevinMeredith-你写了“服务器找不到它”。这正是404的意思,因为服务器没有找到任何与请求UR(资源)I(标识符)匹配的东西。