我应该为UPDATE(PUT)和DELETE(例如,产品成功更新)设置什么状态代码?


当前回答

通常,200 OK和201 Created最适合成功的PUT请求。

对于DELETE方法,202接受和204无内容将是最佳选择。

其他回答

除了200和204之外,205(重置内容)可能是有效的响应。

服务器已完成请求,用户代理应重置导致发送请求的文档视图。。。[例如]清除输入的形式。

2014年6月,RFC7231废除了RFC2616。如果您正在通过HTTP进行REST,那么RFC7231将准确描述GET、PUT、POST和DELETE的预期行为

通常,200 OK和201 Created最适合成功的PUT请求。

对于DELETE方法,202接受和204无内容将是最佳选择。

由于这个问题探究了DELETE“应该”返回200而不是204,因此值得考虑的是,有些人建议返回带有链接的实体,因此首选200。

“与其返回204(无内容),API应该是有用的建议去哪里。在这个例子中,我认为provide是“'somewhere.com/container/'(减去'resource')”-容器客户端刚刚删除了一个资源。也许客户希望删除更多资源,这样将是一个有用的链接。"

http://blog.ploeh.dk/2013/04/30/rest-lesson-learned-avoid-204-responses/

如果客户机遇到204响应,它可以放弃或转到API的入口点,或返回到上一个资源访问。两种选择都不是特别好。

就我个人而言,我不会说204是错误的(作者也不会;他说“令人讨厌”),因为客户端的良好缓存有很多好处。最好是保持一致。

简短回答:对于PUT和DELETE,您应该发送200(OK)或204(No Content)。

长答案:这是一个完整的决策图(点击放大)。

资料来源:https://github.com/for-GET/http-decision-diagram