Библиотека Spring Boot Squiggly перехватывает и изменяет параметр запроса до достижения контроллера - PullRequest
0 голосов
/ 25 апреля 2020

Я хочу отфильтровать атрибуты, отправляемые в ответе 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) 

Есть ли способ, где я могу перехватить каждый запрос и инициализировать параметр запроса "полями"?

...