Что такое WSDL, SOAP и REST? - PullRequest
       73

Что такое WSDL, SOAP и REST?

132 голосов
/ 22 сентября 2010

Что такое WSDL ? Как это связано с SOAP ? Куда вписывается REST во все это?

Ответы [ 10 ]

157 голосов
/ 22 сентября 2010

WSDL - это документ XML, описывающий веб-сервис. Это фактически означает язык описания веб-сервисов.

SOAP - это протокол на основе XML, который позволяет обмениваться информацией по определенному протоколу (например, HTTP или SMTP) между приложениями. Он обозначает простой протокол доступа к объектам и использует XML в качестве формата обмена сообщениями для передачи информации.

REST - это архитектурный стиль сетевых систем, обозначающий передачу представительского состояния. Сам по себе он не является стандартом, но использует такие стандарты, как HTTP, URL, XML и т. Д.

81 голосов
/ 05 июля 2015

Пример: Проще говоря, если у вас есть веб-сервис калькулятора.

WSDL: WSDL рассказывает о функциях, которые вы можете реализовать или предоставить клиенту. Например: добавить, удалить, вычесть и так далее.

SOAP: при использовании SOAP вы фактически выполняете такие действия, как doDelete (), doSubtract (), doAdd (). Так что SOAP и WSDL - это яблоки и апельсины. Мы не должны сравнивать их. Они оба имеют свои разные функции.

Почему мы используем SOAP и WSDL: для независимого от платформы обмена данными.

РЕДАКТИРОВАТЬ: В обычной повседневной жизни, например:

WSDL: Когда мы идем в ресторан, мы видим пункты меню, это WSDL.

Классы прокси: Теперь, посмотрев пункты меню, мы решаем (анализируем, что заказывать): Итак, в основном мы делаем классы прокси на основе WSDL Document.

SOAP: Затем, когда мы на самом деле заказываем еду на основе меню: это означает, что мы используем прокси-классы для вызова методов обслуживания, которые выполняются с использованием SOAP. :)

34 голосов
/ 02 августа 2014

Каждый раз, когда кто-то упоминает SOAP / WSDL, я думаю об объектах и ​​классах, определенных в xml ...

«Вы используете SOAP точно так же, как и любой другой класс PHP. Однако в этом случае этот класс не существует в файловой системе локальных приложений, но на удаленном сайте, доступ к которому осуществляется через http.» ... "Если мы подумаем об использовании службы SOAP в качестве еще одного класса PHP, то документ WSDL представляет собой список всех доступных методов и свойств класса."

http://www.doublehops.com/2009/07/07/quick-tutorial-on-getting-started-with-soap-in-php/comment-page-1/

.. и всякий раз, когда кто-то говорит о REST, я думаю о командах HTTP (методах запроса), таких как POST, GET и DELETE

15 голосов
/ 11 октября 2015

SOAP -> SOAP (протокол простого доступа к объекту) - это протокол уровня приложения, созданный для взаимодействия между компьютерами.Протокол определяет стандартные правила.Все стороны, которые используют конкретный протокол, должны придерживаться правил протокола.Как и TCP, он разворачивается на транспортном уровне. Протокол SOAP будет пониматься прикладным уровнем (любое приложение, которое поддерживает SOAP - Axis2, .Net).

WSDL -> SOAP-сообщение состоит из SoapEnevelope-> SoapHeader и SoapBody.Это не определяет, какой будет формат сообщения?Какие все транспорты (HTTP, JMS) он поддерживает?без этой информации любому клиенту, который хочет использовать конкретный веб-сервис, сложно создать сообщение SOAP.Даже если они это сделают, они не будут уверены, это будет работать все время.WSDL - это спасение.WSDL (язык описания веб-служб) определяет операции, форматы сообщений и детали транспорта для сообщения SOAP.

REST -> REST (Передача состояния представления) основана на транспорте.В отличие от SOAP, который нацелен на действия, REST больше касается ресурсов.REST находит ресурсы с помощью URL (пример - http://{serverAddress}/employees/employeeNumber/12345), и это зависит от транспортного протокола (с HTTP - GET, POST, PUT, DELETE, ...) для действий, которые должны быть выполнены над ресурсами. Служба REST находитресурс, основанный на URL-адресе и выполняющий действие на основе глагола транспортного действия. Это скорее архитектурный стиль и соглашения.

12 голосов
/ 22 сентября 2010

Вы не собираетесь «просто» понимать что-то сложное.

WSDL - это язык на основе XML для описания веб-службы. Он описывает сообщения, операции и информацию о сетевом транспорте, используемую службой. Эти веб-службы обычно используют SOAP, но могут использовать и другие протоколы.

WSDL может быть прочитан программой и может использоваться для генерации всего или части клиентского кода, необходимого для вызова веб-службы. Вот что значит называть веб-сервисы на основе SOAP «самоописывающимися».

REST вообще не связан с WSDL.

11 голосов
/ 22 сентября 2010

SOAP означает простой (sic) протокол доступа к объектам.Предполагалось, что это будет способ делать удаленные вызовы процедур для удаленных объектов путем отправки XML по HTTP.

WSDL - язык описания веб-служб.Запрос, заканчивающийся на «.wsdl» к конечной точке, приведет к сообщению XML, описывающему запрос и ответ, которые может ожидать использование.Он описывает контракт между сервисом и клиентом.

REST использует HTTP для отправки сообщений сервисам.

SOAP - это спецификация, REST - это стиль.

6 голосов
/ 22 сентября 2010

Википедия говорит: «Язык описания веб-сервисов - это язык на основе XML, который предоставляет модель для описания веб-сервисов».Иными словами, WSDL - это веб-сервис, а javadoc - это библиотека java.

По-настоящему приятная вещь в WSDL заключается в том, что программное обеспечение может генерировать клиент и сервер с использованием WSDL.

3 голосов
/ 16 мая 2015

REST является легким с точки зрения кодирования, гораздо более полезным для легких устройств, то есть для нестрогих API.

REST не зависит от формата.Доступны все опции XML, HTML, JSON.

REST предоставляет возможности для двухточечной передачи сообщений (что неудивительно, поскольку REST означает REpresentational State Transfer), где взаимодействие WSDL / SOAP представляет собой взаимодействие нескольких точек сообщения.

REST не требует нового расширения для сообщений XML, где в WSDL / SOAP это так.

WSDL / SOAP использует несколько транспортных протоколов, REST использует только HTTP.Поэтому WSDL / SOAP можно использовать как способ RESTful, однако простые запросы могут быть чрезмерно сложными / тяжело взвешенными.

Простая аналогия: REST подобен мотобое, доставляющему еду легко и быстро.XML расширил WSDL / SOAP, он больше похож на доставку UPS, более структурирован и серьезен, но имеет свою стоимость.

3 голосов
/ 07 августа 2014

Здесь также можно найти некоторые четкие объяснения (для SOAP и WSDL).

Разница между сообщением SOAP и WSDL?

0 голосов
/ 25 мая 2017

Документ WSDL описывает веб-сервис. Он определяет местоположение службы и методы службы, используя следующие основные элементы: типы данных, используемые в веб-сервисе элементы данных для каждой операции опишите операции, которые можно выполнить, и сообщения

SOAP (Simple Object Access Protocol) - это протокол обмена сообщениями, который позволяет программам, работающим в разных операционных системах, обмениваться данными с использованием http и xml.

...