Нельзя сравнивать REST и SOAP. REST - это архитектурный стиль, тогда как SOAP - это протокол.
К сожалению, REST стал разговорным синонимом службы RESTful HTTP, что означает реализацию архитектуры в стиле REST с протоколом HTTP как (приложение).
REST основан на следующих принципах (ограничениях и элементах) (в скобках - реализация в RESTful HTTP) [1] .
- Stateless (HTTP - протокол без сохранения состояния)
- Ресурс (идентифицируется по URI)
- Унифицированный интерфейс (методы HTTP)
- Представление (MIME-TYPE)
- HATEOS (Гиперссылки)
- Кэш (HTTP Cache)
С другой стороны, многие имеют в виду, что SOAP - это веб-сервис, основанный на WSDL и SOAP, которые являются частью архитектуры веб-сервиса W3C [2] .
- SOAP используется в качестве протокола для обмена информацией (в основном, имя метода, параметры, возвращаемые значения, типы данных, ...).
- WSDL язык определения интерфейса для описания веб-сервиса.
Каково современное значение SOAP *?
SOAP является стандартом W3C и используется в качестве формата обмена информацией в веб-сервисах W3C. Эти веб-сервисы были - особенно во время ажиотажа SOA (сервис-ориентированных архитектур) примерно в 2008 году (+ - 3 года) - и (к сожалению) до сих пор используются в основном в корпоративных приложениях.
Это имеет несколько причин. Тогда RESTful HTTP не был известен, и его неправильно поняли. К сожалению, это все еще неправильно поняли, посмотрите на другие ответы
«[...] REST гораздо более ограничен, чем SOAP [...].»
«Основная цель REST - представлять ресурсы в Интернете [...].»
Кроме того, SOAP (и WSDL) являются частью стека протоколов веб-службы W3C, который обеспечивает еще больше стандартов для реализации веб-службы.
Люди все еще разрабатывают новые API-интерфейсы на основе SOAP, или это в основном наследие?
Так что да, есть еще и будут будущие системы, которые используют SOAP (по крайней мере, в корпоративных системах, в основном за дверями). Но большинство сейчас пытается сделать что-то вроде «ОТДЫХА».
Может кто-нибудь поправить меня, если я ошибаюсь по поводу этой разницы между SOAP и REST?
Сказать, что REST является более гибкой архитектурой без сохранения состояния для передачи данных, не является хорошим объяснением. Проще говоря, REST - это стиль архитектуры с конкретными ограничениями и элементами. Принимая во внимание, что SOAP - это протокол обмена информацией.
Как я уже писал, вы не можете сравнить их. Но вы можете сравнить веб-службу RESTful HTTP с веб-службой SOAP / WSDL.