REST:映射404 HTTP状态代码

Jer*_*ook 12 rest web-services restlet

我们的团队正在开发RESTFul应用程序......我们正在讨论"最佳实践"方法.

是否应该为类似过滤器的查询返回404状态代码响应?说我的GET URL是

.../1 /服务/ startsWith/a.json

并且它返回在我的数据库中以A开头的所有值...但如果没有找到"a"值,我应该只返回带有空json字符串的状态代码200吗?或状态代码404.

谢谢!

Dar*_*ler 15

看到这个问题,在我的回答更新中我解决了你的问题.特别是这一点,

我认为是否返回404的答案取决于正在检索的资源是什么.它是搜索结果的表示,还是产品的表示?要知道这一点,您真的需要查看导致我们访问URL的链接关系.

如果URL应该返回Product表示,那么如果代码不存在则应返回404.如果URL返回搜索结果,则它不应返回404.

最终结果是URL看起来不是决定因素.话虽如此,通常会使用查询字符串来返回搜索结果,因此当您不想返回404时,使用该样式的URL会更直观.

  • 是的,我同意达雷尔.简单地说,"无结果"是有效的搜索结果.资源存在,它的表示只是"空".所以,404是不合理的.通过不存在的标识符(/ customers/123)请求具体资源保证404.这不是查询,更多是指针的"取消引用". (5认同)