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(标识符)匹配的东西。