Перейти к содержанию

SOAP (Simple Object Access Protocol)

SOAP — это протокол обмена сообщениями, используемый для взаимодействия между системами по сети.

Он основан на XML и чаще всего используется в веб-сервисах корпоративного уровня, где важны надёжность, безопасность и стандартизация.


Основные характеристики SOAP

  • Основан на XML — все сообщения формируются в виде XML-документов.

  • Использует протоколы передачи, такие как HTTP, SMTP, JMS и др.

  • Является протоколом, а не просто форматом (в отличие от JSON).

  • Строго определённая структура сообщений.

  • Хорошо подходит для сложных сценариев: транзакции, безопасность, логирование, согласованность.


Пример SOAP-сообщения (запрос)

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Header>
    <!-- Метаданные, например, токен авторизации -->
  </soap:Header>
  <soap:Body>
    <getUser xmlns="http://example.com/users">
      <id>123</id>
    </getUser>
  </soap:Body>
</soap:Envelope>

Структура SOAP-сообщения

Элемент Назначение
Envelope Корневой элемент, обязательный
Header Дополнительные метаданные (например, безопасность, трассировка), необязателен
Body Основное содержимое запроса или ответа
Fault Используется для передачи ошибок

Особенности SOAP

  • Строгая спецификация и формализация.

  • Поддерживает WSDL (Web Services Description Language) — файл описания сервиса.

  • Может использовать XSD-схемы для валидации сообщений.

  • Поддержка расширений: WS-Security, WS-ReliableMessaging и др.

  • Требует больше ресурсов (по сравнению с REST/JSON).

  • Менее читаем и сложен в отладке.


Где используется SOAP

  • Финансовые учреждения и банки.

  • Госуслуги и межведомственное взаимодействие.

  • B2B-сервисы, где важны:

    • безопасность,

    • транзакционность,

    • строгая схема данных,

    • стабильность интерфейса.


Инструменты и стандарты

  • WSDL — описание интерфейса сервиса (методы, типы данных).

  • XSD — валидация XML-сообщений.

  • SOAP UI — популярный инструмент для тестирования SOAP-сервисов.

  • WS-стандарты — расширения для безопасности, маршрутизации, надежности.


Заключение

SOAP — это промышленный стандарт для надёжных и безопасных интеграций между системами.

Он сложнее и тяжелее, чем REST, но подходит для задач, где нужны строгие требования к сообщениям, безопасности и валидации.