经过更多的实验,我找到了在Controller中使用Squiggly库和spring boot以及spring web注释的最简单方法.您应该做的唯一一件事是添加配置类,如下所示:
@Configuration
@ConditionalOnClass(ObjectMapper.class)
public class SquigglyAutoconfigure {
@Bean
public FilterRegistrationBean squigglyRequestFilter(ObjectMapper objectMapper) {
Squiggly.init(objectMapper, new RequestSquigglyContextProvider());
FilterRegistrationBean filter = new FilterRegistrationBean<>();
filter.setFilter(new SquigglyRequestFilter());
filter.setOrder(1);
return filter;
}
}
然后当您将查询参数“fields”添加到控制器内的任何端点时:
@RequestParam(name = "fields", required = false) String fields
您将过滤回复.例如,使用这种响应体:
{
"id": "ISSUE-1",
"issueSummary": "Dragons Need Fed",
"issueDetails": "I need my dragons fed pronto.",
"reporter": {
"firstName": "Daenerys",
"lastName": "Targaryen"
}
}
当您使用fields = id,reporter.firstName发出请求时,您将获得:
{
"id": "ISSUE-1",
"reporter": {
"firstName": "Daenerys"
}
}