Я хочу отфильтровать атрибуты, отправляемые в ответе json для нескольких запросов. Я использовал библиотеку Squiggly для достижения этой цели. Ниже приведен код уровня конфигурации, добавленный для достижения этой цели.
@Configuration
@ConditionalOnClass(ObjectMapper.class)
public class SquigglyAutoconfigure {
@Bean
public FilterRegistrationBean squigglyRequestFilter(ObjectMapper objectMapper)
{
Squiggly.init(objectMapper, new RequestSquigglyContextProvider());
FilterRegistrationBean<SquigglyRequestFilter> filter = new FilterRegistrationBean<>();
filter.setFilter(new SquigglyRequestFilter());
filter.setOrder(1);
return filter;
}
}
Теперь у меня есть рабочий код, который отвечает только на поля, отправленные в параметрах запроса, как «поля». Например - инвентарь / запас? Fields = stockInformation будет возвращать только поле stockInformation в ответ.
Теперь клиентский интерфейс может отправлять «поля» параметров запроса, чтобы получать только обязательные поля.
Но я также хочу определить набор полей по умолчанию для каждого запроса. то есть, если передний конец не отправляет queryparam "поля", я должен иметь возможность инициализировать поля с пользовательскими значениями. Я попытался добавить defaultValue в контроллер, но это не сработало.
Ниже код не сработал
@PostMapping
@ResponseStatus(HttpStatus.OK)
public StockInformation returnAllStock(@RequestBody FilterDataList filterDataList,
@RequestParam(name = "fields", required = false,defaultValue="stockInformation{productId}") String fields)
Есть ли способ, где я могу перехватить каждый запрос и инициализировать параметр запроса "полями"?