Итак, у меня есть сервис службы REST с Джерси.Пользовательские сообщения об ошибках для проверки ошибок в Джерси/JAXB
Мой POJO просто аннотированный, как @XmlRootElement
Я посылаю запрос POST к моей службе REST и все работает отлично.
1- Я отправляю неверный XML-код на службу. Я возвращаю страницу 400 по умолчанию с неудовлетворительными запросами контейнеров. Использование Glassfish 3 Я не могу точно помнить, но я знаю, что могу изменить или сказать, что мое веб-приложение подходит для моего собственного 400-и плохого запроса? Где я могу искать документы по этому конкретному вопросу.
2- Я отправляю действительный XML, но в одном из ожидаемых полей я ставлю пустое значение. Мой сервис пытается что-то сделать, и он выдает исключение персистентности. Я возвращаю страницу контейнера по умолчанию 500 Internal Server Error и перечисляет исключенное исключение. Наверное, я могу сопоставить и свою собственную страницу с ошибками, но я просто не хочу показывать сообщение об исключении. Это считается проблемой безопасности.
В основном я хотел бы проверить поля самостоятельно на основе моей бизнес-логики и возвращать клиенту сообщение об ошибке, такое как «Поле1 недействительно». Ничто больше ничего. И клиент должен иметь возможность анализировать код ошибки, а также знать, какое поле было неправильным.
Также, что я могу сделать, когда моя служба имеет более одного типа ошибки с неправильным запросом? Например, поле может ожидать значение INT между 1-3, но конкретный бизнес-запрос ожидает значения 2 и 3 отправляется.
Итак, для проверки типа/значения Я хочу просто сказать «Недопустимое имя поля здесь». Но для конкретной бизнес-логики говорят, например, «Недопустимая учетная запись» или «Учетная запись истекло» или «Адрес не соответствует» и т. Д. ...
Или как насчет того, когда у меня более 1 кода успеха?
В основном я беру старый сервис типа «xml» и конвертирую в стиль REST для подтверждения концепции и доведения ее до стандартов. Старая часть - это 100% POST, даже когда «запрашивать результаты. Т.е.: GET. Так что в основном вы POST к нему XML, он читает XML, называет бизнес-логику и логику возвращает соответствующий код в ответе XML. HTTP 200 OK и код бизнес-логики возвращаются в ответе XML. Таким образом, единственный раз, когда клиент получает ошибку 500, возникает сложный сбой, когда служба не может выполнить ответ XML. Даже недопустимый XML возвращается как 200 OK , но ответ ответа XML указывает на это с моими собственными кодами ошибок.
A a back назад Мне предлагалось использовать SOAP для более ориентированных на «сообщение» сервисов, но я все еще думаю, что это тяжело, и я могу добиться с помощью REST, что мой службы, хотя мне не нужна большая часть REST?
Спасибо, я попробую. Но у меня есть еще несколько вопросов. Я обновил главный вопрос. – user432024