新手问题......
我正在构建我的第一个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
答案 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。使用过滤器忽略字段