Архитектурный стиль для построения веб-сервисов.
Использует HTTP(S) как транспорт.
Операции над ресурсами выполняются через стандартные методы:
GET — получение данных
GET
POST — создание
POST
PUT/PATCH — обновление
PUT/PATCH
DELETE — удаление
DELETE
Данные обычно передаются в формате JSON (иногда XML, YAML).
Легкий, быстрый, кэшируемый, легко тестируется.
Протокол обмена структурированными сообщениями.
Основан на XML.
Работает поверх разных транспортов (HTTP, SMTP, TCP и др.).
Сообщение имеет жестко заданную структуру (envelope, header, body).
Поддерживает встроенные механизмы безопасности (WS-Security), транзакции.
Более тяжелый по сравнению с REST, требует строгих схем (WSDL).
Проверять структуру SOAP-сообщений (валидный XML).
Тестировать работу WSDL (описание API).
Проверять корректность обработки ошибок (Fault).
Сравнивать производительность с REST.
Тип
Архитектурный стиль
Протокол
Формат данных
JSON (чаще всего), XML
XML
Транспорт
HTTP/HTTPS
HTTP, SMTP, TCP и др.
Простота
Легкий и гибкий
Тяжеловесный, строгий
Стандартизация
Нет жесткой спецификации
Строгий стандарт (WSDL)
Безопасность
Использует TLS, OAuth, JWT
WS-Security встроен
Где применяется
Веб-сервисы, мобильные приложения
Банки, финсектор, legacy-системы
Last updated 4 months ago