【问题标题】:REST Response CodesREST 响应代码
【发布时间】:2014-02-10 16:44:24
【问题描述】:

在实现 RESTful API 时,我们应该为用户提供正确的操作响应。

REST API 的架构基于正确构建链接并使用正确的动词发送它,允许用户向 API 询问任何有关任何数据的请求。我应该向用户提供什么响应代码,当他要求的方法未针对他要求的数据实现时?

例子:

API 允许用户通过 postAction 添加文章,但根本不允许删除文章。当用户向我的 API 发送 REST DELETE 请求时,我应该向用户提供什么响应? 404?

【问题讨论】:

    标签: rest response


    【解决方案1】:

    如果是 user 权限问题,403 似乎最合适。 (禁止 - 你不能这样做,但其他人可能可以)

    如果 no-one 被允许执行 DELETE 但它是一个有效的 URI,405。(不允许的方法)

    如果它是对不存在的资源的访问,但DELETEs 支持此类资源,那么 404 是合适的。 (未找到)

    如果不止一种情况(即不允许用户DELETE并且他们提供的 URI 是针对实际不存在的资源),那么您需要决定哪条信息更重要。我可能会选择 404。

    【讨论】:

      【解决方案2】:

      您需要使用响应代码 405 Method Not Allowed 进行响应。

      状态码列表:Wikipedia

      【讨论】:

        【解决方案3】:

        在 RESTfull 服务中基本上使用了四种方法。 GETPOSTPUTDELETE

        您可能正在使用 POST 服务添加文章。

        当使用不同于预期方法的方法调用 REST API 时,API 会自动返回 HTTP 状态码405(方法不允许)

        如果您允许此 API 也使用 DELETE 方法,那么任何人都可以使用 DELETE 方法调用。如果你想禁止用户删除特定的,那么你可以返回 403 (forbidden) 响应代码。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2011-09-01
          • 2016-11-20
          • 1970-01-01
          • 1970-01-01
          • 2018-07-05
          • 1970-01-01
          • 2014-11-13
          • 2016-04-28
          相关资源
          最近更新 更多