SOAP-сообщения в веб-службе на основе REST

Отказ от ответственности: Я действительно запутался между службами REST и SOAP.
После прочтения многих обучающих программ (которые кажутся противоречивыми друг другу) на веб-сервисе на основе REST мне было интересно, можем ли мы/должны использовать SOAP для отправки/получения сообщений в веб-службе на основе REST?
Я пробовал следующие ссылки
1) http://www.ibm.com/developerworks/webservices/library/ws-restful/

2) http://rest.elkstein.org/2008/02/how-simple-is-rest.html

Ответ 1

В разделе "Службы, основанные на SOAP", я предполагаю, что вы имеете в виду WS-I Basic Profile веб-службы. Различие важно, поскольку SOAP можно использовать с REST, а также с веб-сервисами WS-I BP. Позвольте мне объяснить.

SOAP - это формат обмена сообщениями на основе XML для обмена данными. Мыло также определяет способ совершения удаленных вызовов процедур. SOAP является открытым стандартом из W3C. SOAP агностически связан с базовым транспортным уровнем. Часто HTTP используется как транспортный уровень, но он может успешно запускаться через SMTP и TCP, а также другие транспорты.

REST - это архитектурный стиль (не стандартный), поэтому будьте осторожны, чтобы не сравнивать REST и SOAP напрямую, потому что вы не сравниваете яблоки с яблоки. REST принимает HTTP и использует его так, как он должен был использоваться, со всеми его тонкостями и богатством. Архитектурный стиль REST может использоваться для передачи данных в любом формате - он не задает какой-либо конкретный формат данных. Таким образом, SOAP - отличный формат сериализации для веб-сервиса стиля REST. Но многие люди используют JSON, XML, обычный текст и многие другие форматы с REST. Вы можете с радостью обменять двоичные данные на REST, например файлы изображений. Самое приятное, что вы можете выбрать формат данных, который имеет наибольший смысл для вашего приложения.

Обратите внимание, что поскольку REST - это шаблон, а не стандарт, есть много споров о том, что значит быть истинно RESTful. Существует концепция, называемая Модель зрелости Ричардсона, в которой излагается серия шагов к идеалу REST. Сравнивая с моделью Ричардсона, мы можем точно определить, как RESTful является конкретной реализацией REST. Веб-службы WS-I BP находятся на уровне 0 в этом масштабе (т.е. Не очень RESTful вообще, просто используя HTTP как немой транспортный уровень).

Я бы сказал это о выборе REST vs WS-I Basic Profile веб-сервисов - это зависит от вашей аудитории. Если вы разрабатываете интерфейс типа B2B в рамках предприятия, чаще встречаются веб-службы WSI-BP. Поскольку существует базовый стандарт и из-за зрелой поддержки со стороны вендоров (таких как IBM, Oracle, SAP, Microsoft) и из-за уровня поддержки фреймворка, особенно в .NET и Java, WSI-BP имеет большой смысл когда вам нужно быстро что-то сделать, и вы хотите, чтобы клиенты могли подключаться в корпоративной среде, а обмен данными - это бизнес-данные, которые сериализуются хорошо как SOAP.

С другой стороны, если вы публикуете веб-службы для широкой аудитории в Интернете, я бы сказал, что наблюдается тенденция от WSI-BP и к стилю RESTful. Поскольку REST только предполагает, что клиент поддерживает HTTP, его можно заставить взаимодействовать с самой широкой аудиторией. REST также дает вам масштабируемость самого веб-сайта, с поддержкой кэширования ресурсов и т.д., Что делает его масштабируемым для широкой аудитории намного лучше, чем веб-службы WSI-BP.