1

在 POST/PUT 上返回一个稍微不同的对象(例如发送到服务器的对象)是 RESTful 吗?

例子:

客户端向服务器发送 (POST/PUT)Order以创建订单。服务器发送一个响应对象,让我们调用它OrderResponse,其中包含创建的属性Order以及一些不同的信息,如交货时间、付款条件等。这是 RESTful 还是我应该只返回一个 OrderId 并提供一个新服务,客户端可以在其中检索OrderResponse

编辑:

我无法为客户提供新订单的 URL,因为订单未保存在数据库中。我的应用程序通过消息将订单发送到第三方系统,我无法从中读取,但第三方系统向我发送了一些附加信息,我将这些信息添加到OrderResponse.

4

1 回答 1

2

我不会考虑OrderOrderResponse成为不同的资源。它们属于同一类型。只是客户不能也不应该知道这个资源的所有细节。例如,确切的 ID 由服务器分配。

  • 使用可能具有不同表示的相同资源。
  • Location在 HTTP 响应中返回POST包含创建的 URI 的请求的标头Order
  • 使OrderURI 和这个 URI的表示POST比客户端编辑的更完整。
于 2012-10-30T10:28:36.920 回答