一次性行动的反应状态

时间:2014-06-02 19:37:44

标签: rest

如果我的资源只能通过PATCH命令修改一次,并且如果要对其进行后续的PATCH请求,那么最好是:

  • 只需返回当前资源的表示(基本上是GET)或
  • 返回400或422状态,或
  • 别的什么?

1 个答案:

答案 0 :(得分:1)

你肯定想要一个 4xx 响应。

快速查看http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html处的RFC列表,这个是我认为最适合您的情况

  

405方法不允许

     

请求行中指定的方法不允许使用   Request-URI标识的资源。响应必须包括一个   允许包含所请求的有效方法列表的标头   资源。

状态方法不允许的名称完全匹配您想要返回的内容,我认为。


我认为你不应该使用

  

400错误请求

     

由于格式错误,服务器无法理解该请求   语法。

因为没有语法格式错误的情况,即请求有效。

同样适用于

  

422无法处理的实体

     

请求结构良好但由于无法遵循   语义错误。

情况并非如此。

  

简单地返回当前资源的表示(基本上是GET   在它上面)

您计划使用它发送什么状态代码? 200 OK 就像GET一般吗?考虑到请求不合适,我认为很容易将这一个推出桌面,即它没有做到用户期望/希望它做的事情; - )


我之前提到的 405 的替代方案可能是

  

403禁止

     

服务器理解请求,但拒绝履行请求。授权无效,请求不应重复

但我认为 405 更适合这种情况。