Разница между SOAP веб-сервисом и RESTFUL веб-сервисом - PullRequest
6 голосов
/ 27 сентября 2011

Я новичок в Java. Я знаю, что существует два типа веб-сервисов

  1. Веб-сервис SOAP.
  2. RESTful Веб-сервис.

можетлюбой, пожалуйста, скажите мне, в чем заключается основное различие между ними обоими. И в какой ситуации создается SOAP Webservice и в какой ситуации создается RESTful Webservice.

Спасибо,

Ответы [ 3 ]

13 голосов
/ 27 сентября 2011

На самом базовом уровне SOAP - это протокол обмена сообщениями, а REST - это философия проектирования, а не протокол.Когда вы основываете WebService на протоколе SOAP, вы в основном соблюдаете правила SOAP для создания запроса на обслуживание, отправки запроса на сервер, получения запроса на сервере, обработки запроса и возврата результатов в виде сообщения SOAP. SOAP не говорито том, каким именно образом клиент получает выгоду от службы, или о том, как спроектировать самого клиента (кроме сообщения, которое он публикует), он говорит только о том, как сообщение от клиента может быть отправлено в службу и обратно.

REST - сокращение от REpresentational State Transfer.Он не определяет правила для создания сообщения и отправки его на сервер.Вы можете сделать это по простому протоколу HTTP.REST определяет способ, которым клиент и сервер управляют своими состояниями, чтобы они стали полезными для связи клиент-сервер.Здесь вы больше сосредоточены на разработке состояний клиентов и серверов, а не сообщений, которыми они обмениваются.

5 голосов
/ 27 сентября 2011

Как уже объясняется в первом ответе, SOAP Webservices и REST Webservices различаются по разным точкам.

SOAP:

  • вы определяете свой интерфейс в файле .wsdl, который точно описывает, какие входные параметры ожидаются и как будут выглядеть возвращаемые значения
  • есть инструменты для генерации файлов .wsdl из иерархии классов java. JAXB, например
  • есть также инструменты для генерации Java-объектов / классов, например, как часть затмения (в данный момент имя не известно).
  • SOAP очень строгое. Каждый запрос перед обработкой проверяется на соответствие wsdl.

Хорошая, но не очень простая для начала работа с SOAP WS - это Apache CXF

ОТДЫХ (без опыта до сих пор, не стесняйтесь исправлять и улучшать;)):

  • способ доступа к веб-серверу или веб-приложению для извлечения данных или отправки на него.
  • это только договор, как к нему обращаются.
  • общее - это что-то вроде http://server.domain.com/app/type/id=123 для получения объекта типа type с id = 123
  • очень интуитивно понятный, но без автоматической проверки запросов.
  • ...

Я уверен, что есть несколько других моментов, которые я пропустил. Но я думаю, что это полезное начало.

2 голосов
/ 13 мая 2012

Вы могли бы также гуглить для этого; это хорошая статья на эту тему: http://geeknizer.com/rest-vs-soap-using-http-choosing-the-right-webservice-protocol/

...