为帖子请求返回200 ok是否正确?

时间:2017-02-26 03:28:19

标签: api http post

通常,我们使用POST在服务器端创建资源。理想情况下,如果一切正常,服务器应以201创建的状态响应,或者在接受异步操作202的情况下。

是否有任何有效的情况,POST请求可以返回200 OK?或者我们永远不应该使用200 OK来发送POST请求。

2 个答案:

答案 0 :(得分:2)

我认为200是对互联网上POST请求的一个非常常见的回应。使用它很好。

来自RFC 7231

  

6.3.1。 200 OK

     

200(OK)状态代码表示请求已成功。   200响应中发送的有效负载取决于请求方法   对于本说明书定义的方法,预期含义
  有效载荷的总结可以概括为:

     

获取目标资源的表示;

     

HEAD表示与GET相同,但没有   表示         数据;

     

POST一个表示状态或从中获得的结果,         行动;

     

PUT,DELETE表示行动的状态;

     

选择通讯选项的表示;

     

跟踪由收到的请求消息的表示   结束         服务器

第4.3.3节:

  

对POST请求的响应只有在包含时才可缓存   显式新鲜度信息(参见[RFC7234]的第4.2.1节)。   但是,POST缓存并未广泛实施。对于某些情况   源服务器希望客户端能够缓存a的结果   POST以一种可以被后来的GET重用的方式,原始服务器可以   发送包含结果和内容位置的200(OK)响应   标题字段,其值与POST的有效请求值相同   URI(第3.1.4.2节)。

答案 1 :(得分:0)

是的,您可以返回200 Ok HTTP状态,但是您应该返回响应 BODY

通常,根据您的API要求,我们有3个选项:

  1. 返回201 Created HTTP状态,并带有 EMPTY BODY
    如果您不需要返回响应正文。

  2. 使用 BODY 返回200 Ok HTTP状态。
    如果您需要返回响应正文[包含已创建的资源]。

  3. 返回202 Accepted HTTP状态,并带有 EMPTY BODY
    万一该动作将排队。