POST方法调用后发送“200 OK”状态码是否违反HTTP/REST原则?

POST方法调用后发送“200 OK”状态码是否违反HTTP/REST原则?,rest,http,Rest,Http,情景: 客户端使用消息体中的所需信息调用POST HTTP方法 服务器成功地创建了资源。但无法通过直接链接引用创建的资源 回答客户机请求已成功处理的最佳方式是什么 返回201,但未提供位置标头 b只需返回200,无需任何附加信息 c一些其他选项…如果你想成为一个REST纯粹主义者,那么这里正确的响应应该是在响应的Location头中返回一个201,其中包含指向新创建资源的URL HTTP 201状态代码表示“已创建”,位置标头表示在两种方案之一中设置,其中一种方案用于提供有关新创建资源的信息:

情景:

客户端使用消息体中的所需信息调用POST HTTP方法

服务器成功地创建了资源。但无法通过直接链接引用创建的资源

回答客户机请求已成功处理的最佳方式是什么

返回201,但未提供位置标头

b只需返回200,无需任何附加信息


c一些其他选项…

如果你想成为一个REST纯粹主义者,那么这里正确的响应应该是在响应的Location头中返回一个201,其中包含指向新创建资源的URL

HTTP 201状态代码表示“已创建”,位置标头表示在两种方案之一中设置,其中一种方案用于提供有关新创建资源的信息:


好的,当问题还没有解决时,我找到了答案,答案是:

POST方法执行的操作可能不会生成资源 可以由URI标识的。在这种情况下,200 OK或204 无内容是适当的响应状态,具体取决于 响应是否包含描述结果的实体


总之,不-这没有违反任何规定。

谢谢,但这并不是我想要的答案。返回URL不是一个选项-我已经提到了。啊,对不起,读一下。那么,您正在创建一个永远无法访问的资源?我提到,无法通过直接引用创建的资源!链接有可能在以后使用该资源,但在某些特定的上下文中。只是没有办法单独提及。是的,我认为你处于一种超出常规的情况中。在您的实例中,我会返回一个带有空位置头的201,但这只是我的观点。