RESTful POST响应

时间:2018-03-01 16:31:27

标签: rest httprequest httpresponse

我有一个非常简单的RESTful服务,通过POST接收一些表单数据,其目的是简单地在云存储中保留文本正文(具有唯一ID)(Amazon S3,Azure Blob存储等)作为文件...

所以,问题是..如果一切都很好,并且我向呼叫者返回200响应,那么我应该以身体的形式返回呼叫者?

什么? 什么?

如果这是创建数据库记录..也许新记录的id可能有用..但在这种情况下,我只想HttpRepsone代码就足够了吗?

有人同意,不同意或有讨论的支持链接吗?

我应该补充一点,对此服务的请求几乎都是......请关闭,然后去......他们实际上 我建议发回的唯一ID。这更像是为了#34;完整性"。

2 个答案:

答案 0 :(得分:2)

简短回答

一旦在服务器上创建资源,您应该返回201状态代码和Location标头,允许客户端找到新创建的资源。

响应有效负载是可选的,它通常描述并链接到创建的资源。

答案稍长

请参阅RFC 7231

中的以下引用
  

4.3.3. POST

     

[...]如果由于成功处理POST请求而在原始服务器上创建了一个或多个资源,则原始服务器应该发送包含201(已创建)的响应一个Location标头字段,用于提供所创建的主资源的标识符,以及一个表示在引用新资源时描述请求状态的表示。 [...]

同样来自RFC 7231

  

6.3.2. 201 Created

     

201(已创建)状态代码表示已完成请求并导致创建了一个或多个新资源。请求创建的主要资源由响应中的Location标头字段标识,如果没有收到Location字段,则由有效请求URI标识。

     

201响应有效负载通常描述并链接到创建的资源。 [...]

  

7.1.2. Location

     

在某些响应中使用Location标头字段来引用与响应相关的特定资源。关系类型由请求方法和状态代码语义的组合定义。

Location = URI-reference
     

字段值由单个URI引用组成。 [...]对于201(已创建)响应,Location值是指请求创建的主要资源。 [...]

答案 1 :(得分:1)

  

我应该补充一点,对这项服务的请求几乎是......交出来,然后去......他们实际上并不需要唯一的身份

绝对没问题可以回复帖子请求。你说它甚至不是呼叫者所要求的。但状态代码201会更有意义。