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, но подходит для задач, где нужны строгие требования к сообщениям, безопасности и валидации.