【问题标题】:REST: Mapping 404 HTTP Status codesREST:映射 404 HTTP 状态代码
【发布时间】:2010-12-02 22:35:40
【问题描述】:

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

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

.../1/service/startsWith/a.json

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

谢谢!

【问题讨论】:

    标签: web-services rest restlet


    【解决方案1】:

    请参阅this 问题,在我回答的更新中,我解决了您的问题。 具体这一点,

    我想答案是否 返回 404 取决于是什么 正在检索的资源。是 它代表搜索 结果,或者它是一个表示 产品?要知道这一点,你真的需要 查看导致的链接关系 我们的网址。

    如果 URL 应该返回一个 产品表示然后是 404 如果代码确实应该返回 不存在。如果 URL 返回搜索 结果那么它不应该返回 404。

    最终的结果就是那个URL 看起来不是决定性的 因素。话虽如此,它是 使用查询字符串的约定 返回搜索结果 直观地使用那种风格的 URL 当您不想返回 404 时。

    【讨论】:

    • 是的,我同意达雷尔的观点。简单地说,“无结果”是一个有效的搜索结果。资源存在,它的表示只是“空”。因此,404 是不合理的。通过不存在的标识符 (/customers/123) 请求具体资源需要 404。这不是查询,而是指针的“取消引用”。
    【解决方案2】:

    返回 204 代码可能更明智,这意味着“无内容”。这会稍微高效一些,因为 204 状态不能包含任何文档内容,而且您可以检测代码而不必解析响应。

    【讨论】:

      猜你喜欢
      • 2015-07-19
      • 1970-01-01
      • 2011-01-23
      • 1970-01-01
      • 2021-12-02
      • 2017-09-09
      • 2019-03-25
      • 2010-12-10
      • 1970-01-01
      相关资源
      最近更新 更多