java - 对 PUT/POST 的 RESTful 响应

标签 java rest response put restful-architecture

在 POST/PUT 上返回一个稍微不同的对象(例如发送到服务器的对象)是否符合 REST 风格?

示例:

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

编辑:

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

最佳答案

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

  • 使用相同的资源,但可能具有不同的表示形式。
  • 在对 POST 请求的 HTTP 响应中返回一个 Location header ,其中包含创建的 Order 的 URI。
  • 使订单的表示和此URI比客户端POST的表示更加完整。

关于java - 对 PUT/POST 的 RESTful 响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13135234/

相关文章:

java - 嵌入式 jetty 响应

java - 重新创建没有依赖项的 GitHub 项目 (Java)

java - Hibernate - 数据库结果和计算复杂性

为 REST 服务创建客户端 stub 的 java 工具

jquery - 在一个 HttpResponse 中返回两件事

java - 在有效用户的情况下执行错误的循环

java - org.springframework.beans.factory.NoSuchBeanDefinitionException : No bean named 'documentumServiceForIDP' is defined

java - 使用 Retrofit 2 重试请求

java - 在 Java 6 上使用 https 连接到服务的 Jersey 错误

json - 托管 JSON 文件以供第 3 方应用程序/服务使用