Разница между SOAP webservice и RESTFUL webservice

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

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

может ли кто-нибудь сказать мне, в чем основная разница между ними обоими.И в какой ситуации и в какой ситуации это.

Спасибо,

3 ответов


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

мыло:

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

хороший, но не так легко начать с framework для SOAP WS является Apache CXF

отдых (нет рук на опыте до сих пор, не стесняйтесь исправлять и улучшать;)):

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

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


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

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


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