HTTP_OK
足够了吗?我找到了一个描述POST/PUT差异的好帖子:POST vs PUT,但它仍然没有回答我的问题。
发布于 2010-11-25 00:18:48
请原谅我的轻率,但是如果你在HTTP上做REST,那么RFC7231准确地描述了GET,PUT,POST和DELETE的行为。
更新(2014年7月3日):
HTTP规范有意没有定义从POST或DELETE返回的内容。规范只定义了需要定义的内容。剩下的留给实现者来选择。
发布于 2010-11-25 00:01:02
总体而言,约定是“就像你只是在传递网页一样思考”。
对于PUT,我返回的视图与在get之后立即返回的视图相同;这将导致200 (当然,假设渲染成功)。对于POST,我会重定向到创建的资源(假设您正在执行创建操作;如果不是,只返回结果);成功创建的代码是201,这实际上是唯一不在300范围内的重定向HTTP代码。
对于DELETE应该返回什么,我从来都不满意(在这种情况下,我的代码当前生成一个HTTP204和一个空的正文)。
发布于 2010-11-25 00:02:22
创建资源通常映射到POST,这应该返回新资源的位置;例如,在Rails scaffold中,CREATE将重定向到新创建的资源的SHOW。同样的方法对于更新(PUT)可能是有意义的,但这不是一种约定;更新只需要表明成功。delete可能也只需要指示成功;如果您想要重定向,返回资源列表可能是最有意义的。
成功可以通过HTTP_OK来表示,是的。
我在上面说过的唯一一条硬性规则是,创建应该返回新资源的位置。对我来说,这似乎是不费吹灰之力的;客户端将需要能够访问新项目,这是非常有意义的。
https://stackoverflow.com/questions/4268707
复制相似问题