Проверка бина @Positive директива не работает на Integer @PathVariable - PullRequest
0 голосов
/ 25 июня 2019

Я пытаюсь проверить метод контроллера (ресурс REST Api) Integer с аннотацией проверки @Positive bean, но ничего не происходит.

Java:
Версия Java "11.0.2" 2019-01-15 LTS
Среда выполнения Java (TM) SE 18.9 (сборка 11.0.2 + 9-LTS)
Java HotSpot (TM) 64-битный сервер ВМ 18.9 (сборка 11.0.2 + 9-LTS, смешанный режим)

Весенний ботинок:
2.1.6.RELEASE

Код:

@RestController
@RequestMapping("/test")
public class TestController {

    @GetMapping("/{id}")
    public ResponseEntity<?> lista(@Valid @NotNull @Positive @PathVariable("id") Integer id) {
        String msg = "";
        if (id > 0) {
            msg = "id > 0";
        } else {
            msg = "id <= 0";
        }
        System.out.println(msg);
        return ResponseEntity.ok(msg);
    }
}


@ Позитивный не делает то, что должен.

Тесты:

Запрос:
ПОЛУЧИТЬ localhost: 8080 / test / 0
Ответ:
200 OK "id <= 0" <br> Ожидаемый:
400 Неверный запрос

Запрос:
ПОЛУЧИТЬ localhost: 8080 / test / -1
Ответ:
200 OK "id <= 0" <br> Ожидается: 400 плохих запросов


Когда я пытаюсь получить GET localhost: 8080 / test / teste, я получаю 400 Bad Request, как и ожидалось.

1 Ответ

1 голос
/ 25 июня 2019

Была такая же проблема, и она была решена путем применения

@Validated

на моем контроллере.Это должно дать вам не HTTP 400, а HTTP 500.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...