Найти тему
NoBugHere_QA

Что такое SOAP

Главное отличие SOAP от REST в том, что SOAP это формат обмена сообщения, а REST архитектурный подход использующий http как транспортный протокол.

SOAP использует для обмена данными xml.

Веб-сервисы, использующие SOAP в качестве протокола, используют четко структурированные сообщения, описанные в контракте WSDL. То есть если сообщение не соответствует описанным правилам, то мы получаем ошибку, в виде структурированного xml.

xml содержит в себе:

— Envelope (конверт) – корневой элемент, который определяет сообщение и пространство имен, использованное в документе

— Header (заголовок) – содержит атрибуты сообщения, например: информация о безопасности или о сетевой маршрутизации

— Body (тело) – содержит сообщение, которым обмениваются приложения

— Fault – необязательный элемент, который предоставляет информацию об ошибках, которые произошли при обработке сообщений. И запрос, и ответ должны соответствовать структуре SOAP.

WSDL — это правила по которым составляются собственно сообщения, которые отправляются к веб-приложению, у них четкая структура и правила и описаны также с помощью xml.

Например, там описаны возможности вызова методов и параметры, используемые для вызова этого метода. Каждый параметр или массив параметров четко описан, какой у него тип и название. WSDL обычно лежит по url адресу сервиса, по нему можно получить знание о методах , используемых в сервисе.

Плюсы использования SOAP:

четкая структура описания, читающая любым soap клиентом

автоматическая валидация xml

описание методов и типов в автоматическом режиме

Минусы:

большой размер сообщений

сложность и ресурсоемкость

Редко, когда корректный текст в ошибках (например, в «Честном знаке» на маркировке, непросто понять в чем же проблема по тексту ошибки).

Протестировать SOAP можно в бесплатной программке SOAP UI. Нужно знать только адрес по которому лежит wsdl. Далее подгружаете ее в программу и получаете готовые методы, использующиеся в веб сервисе, и тестируйте разные методы, вставив туда свои параметры.

SOAP и REST используются много где и в работе скорее всего придется встретится с каким то из этих протоколов. На SOAP работает много банковских сервисов и больших систем. Обычные же сайты используют REST.