Мне нужно знать, можно ли проверить значение переменной пути в REST URI.
Пример: http://loacalhost:8080/config/test/{id}/plan
если запрос приходит как http://loacalhost:8080/config/test//plan без идентификатора, мне нужно выдать исключение, как идентификатор является обязательным. Возможно ли это сделать. Решение заметно
Это уже требуется по умолчанию, и исключение уже выдается, если оно отсутствует. С документация :
public abstract boolean required Является ли переменная пути обязательно. По умолчанию установлено значение true, что приводит к возникновению исключения, если переменная пути отсутствует во входящем запросе . Переключите это на false, если вы предпочитаете нуль или Java 8 java.util.Optional в этом случае. например на метод ModelAttribute, который служит для различных запросов.
public abstract boolean required
Акцент мой
Вам нужно только пометить параметр как «обязательный» в методе конечной точки
Вы можете использовать Optional:
Optional
@GetMapping("/config/test/{id}") public ResponseEntity<?> doGet(@PathVariable("id") Optional<Integer> id) { Integer idValue = id.orElseThrow(new IllegalArgumentException("Id is required")); }