RESTful POST响应

问题描述 投票:1回答:2

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

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

什么?没有?

如果这是创建数据库记录..也许新记录的id可能有用..但在这个例子中,我只是想HttpRepsone代码就足够了?

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

我应该补充一点,对这项服务的请求几乎是......切换,然后去......他们实际上并不需要我建议发回的唯一ID。这更像是为了“完整性”。

rest httprequest httpresponse
2个回答
2
投票

简短的回答

在服务器上创建资源后,应返回201状态代码以及Location标头,以允许客户端找到新创建的资源。

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

更长的答案

请参阅RFC 7231的以下引用:

4.3.3. POST

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

也来自RFC 7231

6.3.2. 201 Created

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

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

7.1.2. Location

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

Location = URI-reference

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


1
投票

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

它绝对没有回复任何回复请求。你说它甚至不是呼叫者所要求的。但状态代码201将更有意义。

© www.soinside.com 2019 - 2024. All rights reserved.