Бизнес-ошибки против системных ошибок в SOAP Fault и их мониторинг. - PullRequest
0 голосов
/ 07 сентября 2018

В последнее время у меня было несколько дискуссий с несколькими людьми о том, должна ли бизнес-ошибка быть ошибкой SOAP или нет. Мы нашли много дискуссий в Интернете на эту тему и пришли к выводу, что ошибки SOAP и объекты ошибок принимаются.

Теперь, предполагая, что это правильно, нам нравится тот факт, что все сбои обрабатываются одинаково и пошли на сбой SOAP для бизнес-ошибок. Однако теперь мы получаем коды состояния HTTP 500 для бизнес-ошибок, поскольку ошибки SOAP должны быть HTTP 500 в соответствии со спецификацией:

https://www.w3.org/TR/2000/NOTE-SOAP-20000508/#_Toc478383507

В случае ошибки SOAP при обработке запроса HTTP-сервер SOAP ДОЛЖЕН выдать ответ HTTP 500 «Внутренняя ошибка сервера» и включить сообщение SOAP в ответ, содержащий элемент SOAP Fault (см. Раздел 4.4), указывающий SOAP ошибка обработки.

Для SOAP 1.2 я обнаружил следующее:

https://www.w3.org/TR/2007/REC-soap12-part2-20070427/#soapinhttp

Это связывание SOAP с HTTP предназначено для надлежащего использования HTTP в качестве протокола приложения. Например, успешные ответы отправляются с кодом состояния 200 или 202, а ошибки обозначаются как 4XX или 5XX.

Так я могу предположить, что бизнес-ошибки SOAP также должны быть HTTP 500?

Предположим, у вас есть EBS с сотнями сервисов и для всех из них запущен инструмент мониторинга. Как ваш мониторинг может узнать разницу между системными и бизнес-ошибками?

...