Обработка исключений конечной точки отдыха - PullRequest
3 голосов
/ 19 июня 2019

Ниже моя конечная точка отдыха. Я использовал Long для типа данных для userId , он прекрасно работает при вызове конечной точки через почтальонов, как показано ниже, и я могу явно обрабатывать исключения.

локальный: 8080 / заказ-сервис / сохранить заказ / 1

но когда я звоню вот так с параметром строкового типа,

локальные: 8080 / заказ-сервис / сохранить заказ / а

весенняя загрузка неявно обрабатывает исключение и выдает 400 неверных запросов.

что я хочу, это выдать специальное сообщение об ошибке типа «пожалуйста, отправьте правильный userId», когда тип переменной параметра не равен long.

@PostMapping(path = "/save-order/{userId}")
    @ResponseBody
    public ResponseEntity<ExceptionResponse> addOrder(@Valid @RequestBody 
         OrderDTO orderDto, @Valid @PathVariable(name = "userId") Long userId) throws BatchException, UserExceptions, BatchIdException, InvalidDateFormatException, DeliveryIdException,BatchMerchantException {
        return ResponseEntity.ok(new ExceptionResponse("Order Saved", 201, orderServiceImpl.saveOrder(orderDto, userId)));
    }

1 Ответ

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

Вы можете реализовать свой собственный валидатор, см. Здесь: https://www.baeldung.com/spring-mvc-custom-validator

Возвращать true, если ввод подходит, и false, если нет, вы также можете определить сообщение, которое вы хотите показать пользователю, если он вводитнеправильный ввод.

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