如何从Spring Boot restful GET调用中返回对象属性的子集?

时间:2017-07-14 06:27:57

标签: java json rest

新手问题......

我正在构建我的第一个Spring Boot restful服务,并希望支持一个返回实体集合的GET调用。喜欢:

/api/customers/

但是,对于某些消费者 - 类似于Web UI中的列表页面 - 他们只需要客户实体属性的子集。

我想我可以在我的GET调用中添加请求参数来设置特定于消费者的字段要求,例如

/api/customers/?fields=id,name,address

但是在Java restful控制器中实现这个的最佳方法是什么?

目前在我的休息控制器中,'GET'是请求映射到Java方法,如

@RequestMapping(value="/", method= RequestMethod.GET)
public Customer[] getList() {
  Customer[] anArray = new Customer[];
  ....
  return anArray;
}

是否有可能以某种方式干预默认的Java到Json响应体转换,以便只包含所需的属性?

TIA

1 个答案:

答案 0 :(得分:1)

根据http://www.vinaysahni.com/best-practices-for-a-pragmatic-restful-api#limiting-fields

添加fields参数是一个好主意,最佳做法

如何离开田野?

1)将它们设置为null,可能在使用@JsonSerialize(include=JsonSerialize.Inclusion.NON_NULL)注释的专用输出类中

2)使用SimpleBeanPropertyFilter查看详细的分步教程here 5。使用过滤器忽略字段