Весенняя загрузка : поведение REST API несовместимо после обновления версии

#spring-boot #rest #spring-mvc

Вопрос:

У меня возникла проблема после обновления до версии Spring Boot 2.3.0.ВЫПУСКА с версии 1.5.10.ВЫПУСКА. Наш API контроллера выглядит так —

 @RequestMapping(value = "/card", method = RequestMethod.GET)
public CardRespDTO getCards(@RequestParam String profileId, @RequestParam(required = false) String banner, @RequestParam(required = false) String paymentGatewayVersion);
 

Потребитель смог вызвать этот API, не передавая параметр ProfileID, а просто указав заголовок USER_ID. Но после обновления версии эти вызовы завершаются ошибкой ниже —

 org.springframework.web.bind.MissingServletRequestParameterException: Required String parameter 'profileId' is not present
 

Может ли кто-нибудь, пожалуйста, помочь определить проблему здесь? Мы не можем просить потребителя внести изменения.

Комментарии:

1. Я думаю, вам также нужно установить required=false для ProfileID, @RequestParam(required = false) Строка ProfileID.

2. Спасибо @OnkarMusale

Ответ №1:

Маркировка profileId как не требуется должна сделать свое дело:

 @RequestMapping(value = "/card", method = RequestMethod.GET)
public CardRespDTO getCards(@RequestParam(required = false) String profileId, 
    @RequestParam(required = false) String banner, 
    @RequestParam(required = false) String paymentGatewayVersion)