Комментарии 6
Спасибо, но одно замечание: метод
UserService.get()
не потокобезопасен. В данном игрушечном примере это скорее всего не приведет к проблеме (из HashMap вы только читаете), но вообще говоря так делать опасно.Обычно для этого используется СУБД. HashMap тут только для простой демонстрации. Но вообще, да. Если добавить еще метод на создание пользователей, то следует использовать ConcurrentHashMap.
Exception тут, по-моему, явно лишний. С точки зрения сервера, если клиент прислал неправильный ИД, то он сам виноват. Никакой ошибки сервера здесь нет, значит, и Exception не нужен.
Я бы лучше в контроллере проверил, если user == null, то ответить кодом 404. В результате программа будет делать то же самое, только без лишних классов и быстрее (так как при создании Exception-а заполняется stack trace, а это относительно тяжёлая и долгая операция)
Я бы лучше в контроллере проверил, если user == null, то ответить кодом 404. В результате программа будет делать то же самое, только без лишних классов и быстрее (так как при создании Exception-а заполняется stack trace, а это относительно тяжёлая и долгая операция)
Странный комментарий.
Во-первых, сервисы бывают разные и разные правила взаимодействия между ними могут быть. Сильно зависит от конечной системы.
Во-вторых, тут показывается пример с 404 для простоты. Вы легко можете заменить его, например, на 400 при валидации некоторых полей и в ответном сообщении показать какое поле с ошибкой.
Мне кажется вы сильно упрощаете. Если все было бы так, то и такого разнообразия интрументов не было бы. Люди просто отдавали статус при любой ошибке и все.
Во-первых, сервисы бывают разные и разные правила взаимодействия между ними могут быть. Сильно зависит от конечной системы.
Во-вторых, тут показывается пример с 404 для простоты. Вы легко можете заменить его, например, на 400 при валидации некоторых полей и в ответном сообщении показать какое поле с ошибкой.
Мне кажется вы сильно упрощаете. Если все было бы так, то и такого разнообразия интрументов не было бы. Люди просто отдавали статус при любой ошибке и все.
Аннотация ServiceAdvice— поправьте, пожалуйста, на ControllerAdvice.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Обработка ошибок в формате JSON со Spring Boot