У меня есть следующие конечные точки REST в Spring boot
@GetMapping(value = "students", params = {"name"})
public ResponseEntity<?> getByName(@RequestParam final String name) {
return new ResponseEntity<>(true, HttpStatus.OK);
}
@GetMapping(value = "students", params = {"tag"})
public ResponseEntity<?> getByTag(@RequestParam final String tag) {
return new ResponseEntity<>(true, HttpStatus.OK);
}
Вышеуказанные обработчики отлично работают для следующих запросов:
localhost:8080/test/students?name="Aron"
localhost:8080/test/students?tag="player"
Однако всякий раз, когда я пробую следующее:
localhost:8060/test/students?name="Aron"&tag="player"
, он выдает java.lang.IllegalStateException: Ambiguous handler methods mapped
и отвечает HTTP 500
Как я могу изменить это поведение? Я хочу, чтобы мое приложение отвечало только тогда, когда я получаю параметр запроса tag
или параметр запроса name
. Во всем остальном я хочу, чтобы он игнорировал , даже если это комбинация двух параметров.
Почему здесь возникает неоднозначная ошибка и как мы можем с этим справиться?