【发布时间】:2017-12-19 03:35:43
【问题描述】:
新手问题...
我正在构建我的第一个 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
【问题讨论】:
-
子集的数量是否已知,或者消费者可以要求任何字段组合?嵌套字段呢?您可能想查看Facebook graph API,它可以满足您的需求。
GET graph.facebook.com/me?fields=id,name,picture -
我看到有两个主要字段子集场景:简单列表,其中只需要客户 ID 和名称;和表格列表,其中可能需要其他属性,例如:地址、联系电话等。