#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)