猿问

有效请求但数据为空的正确REST响应代码是什么?

例如,您运行的GET请求,users/9但没有ID为#9的用户。最好的响应码是?

  • 200 OK

  • 202接受

  • 204没有内容

  • 400错误的要求

  • 找不到404


凤凰求蛊
浏览 621回答 3
3回答

慕婉清6462132

最初,我认为204是有意义的,但是在讨论之后,我相信404是唯一真正正确的答案。考虑以下数据:用户:约翰,彼得METHOD  URL                      STATUS  RESPONSEGET     /users                   200     [John, Peter]GET     /users/john              200     JohnGET     /users/kyle              404     Not foundGET     /users?name=kyle`        200     []DELETE  /users/john              204     No Content一些背景:搜索返回一个数组,它没有任何匹配,但是有内容:一个空数组。404当然是最著名的请求服务器不支持的URL,但是实际上缺少的资源是相同的。即使/users/:name与匹配users/kyle,用户Kyle也不可用资源,因此404仍然适用。它不是搜索查询,它是动态url的直接引用,所以它是404。无论如何,我的两分钱:)
随时随地看视频慕课网APP
我要回答