找不到资源集合的最合适的HTTP状态是什么?

Abh*_*kar 2 rest http http-status-code-404

我们的应用程序不直接处理资源,或者支持关于创建,更新,删除资源的各种HTTP动词.我们主要使用"finder"方法返回一组资源.所以我们可能有一个URL /users?firstName=john但不是/users/1.

我们正在讨论的问题是,如果没有找到名字为"john"的用户,那么最合适的HTTP状态代码是什么.我的观点是应返回204表示空集合,但不返回404,因为集合本身不是资源,因此"未找到资源"不是有效响应.RFC 3986,第3.4节说 -

查询组件包含非分层数据,与路径组件(第3.3节)中的数据一起用于标识资源...

关于资源的集合没有任何说法.

思考?

Bra*_*son 6

我同意404状态不合适.我个人会使用200状态和空集合,因为这显然代表了"无结果"的响应.

  • 这无疑是相当的意见(REST很有趣),但作为一个客户端,我希望某种结果从查询中返回,即使该结果是空集合.没有反应机构的204会让我感到惊讶.话虽这么说,既不对也不错:如果一个204而且没有一个身体对你更有意义,那就去吧! (2认同)