【问题标题】:Best way to return 2 objects inside a response body in Spring在 Spring 的响应体内返回 2 个对象的最佳方法
【发布时间】:2020-08-03 19:09:48
【问题描述】:

我想在 POST 请求正文中发送 2 个对象(2 个不同类的实例),处理信息并发回更新的对象作为响应。最好的方法是什么?我知道我可以将对象放在地图中或创建包装对象,但可能有更优雅的方式来实现。

请求正文示例:

{
  "object1": {
    "data1": "val1",
    "data2": "val2"
  },
  "object2": {
    "dataN": "valN"
  }
}

响应正文示例:

{
  "object1": {
    "data1": "updatedVal1",
    "data2": "val2"
  },
  "object2": {
    "dataN": "updatedValN"
  }
}

【问题讨论】:

  • 这两个不同的对象有什么关系?为什么在 REST 意义上,将两者都发回有意义?
  • 您自己的发回 2 个对象的示例基本上是一个包含 2 个 json 对象的对象。在一个响应中发送两个对象是没有意义的,只需创建两个不同的请求和两个不同的响应,除非这两个对象都是一个更大对象的一部分,在这种情况下你应该使用包装类。

标签: java json spring spring-boot web


【解决方案1】:

不,没有优雅的方式发送两个 java 对象。使用 POJO 已经足够优雅了。拥有许多代表特定事物的 POJO 并没有错。使用 POJO 比使用 Map 更好,因为它提供了类型安全性。如果您使用 lombok 库,您可以消除所有样板代码,这样您的 POJO 就变得又好又小:

@Data
public class TwoResponse {
  private OneType object1;
  private TwoType object2;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-01-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-17
    • 1970-01-01
    相关资源
    最近更新 更多