使用Jersey 2.16,我希望通过传递一个布尔查询参数来返回列表的子集,该参数将匹配表示列表中的布尔字段。
例如,我们说我有这样的苹果资源:
@GET
@Path("apple/list")
public Response getAppleList(@DefaultValue("false") @QueryParam("isGreen") final boolean isGreen) {
return appleService.getAppleList();
}
我的苹果代表看起来像这样:
public class AppleRepresentation {
private int id;
private String colour;
private String country;
private String isGreen;
}
是否有内置的Jersey过滤机制可以过滤我的List<AppleRepresentation>
并仅返回青苹果?
到目前为止,我已查看Jersey entity filtering。根据我所见,有方法可以使用SelectableEntityFilteringFeature
过滤掉整个列表或字段。
不幸的是,我看不到一种简单的方法,只返回一个字段=值的列表的子集。
答案 0 :(得分:1)
您是否尝试过Java 8的本地流过滤方法?
appleService.getAppleList().stream().filter(a -> a.isGreen);
考虑到isGreen是一个布尔值......
(虽然没有测试)