Отдых и другие веб-службы
Что делает Restful webservices отличным от других веб-сервисов, таких как SOAP?
Ответы
Ответ 1
Обсуждение веб-сервисов отнюдь не является полным, но есть некоторые элементы, которые выделяются.
Веб-службы RESTful являются "семейством" веб-сервисов. Некоторые назвали бы это архитектурой.
Веб-службы RESTful используют протокол HTTP для выполнения запросов от веб-службы. Они используют HTTP-глаголы: GET, POST, PUT и DELETE (и другие, иногда). Сами запросы относятся к URL-адресам, которые представляют ресурсы... иногда запросы будут содержать данные в теле, которые могут быть получены через HTML, JSON, двоичные данные или другие.
Для чисто веб-службы RESTful требуется только URL-адрес и HTTP-глагол для описания запрошенного действия... данные тела обычно представляют собой полезную нагрузку для участия в запрошенном действии... он не должен диктовать запрошенное действие
SOAP, с другой стороны, фактически является протоколом. Обычно он переносится через HTTP, но HTTP-запрос - это всего лишь способ получить SOAP-пакет для необходимого обработчика. Содержимое запроса SOAP описывает то, что клиент хочет выполнить. Он содержит всю необходимую информацию.
Это два очень разных способа реализации Web-сервисов. Если вы зададите вопрос "Что лучше", вы, вероятно, получите сильные мнения с обеих сторон. Я предлагаю вам исследовать дальше и составить свой собственный разум.
Ответ 2
A RESTful веб-сервис (также называемый веб-интерфейсом RESTful) - это простой веб-сервис, реализованный с использованием HTTP и принципов REST. Такой веб-сервис можно рассматривать как совокупность ресурсов. Определение такой веб-службы можно рассматривать как содержащую три аспекта:
- Базовый URI для веб-службы, такой как http://example.com/resources/
- Тип MIME данных, поддерживаемых веб-службой. Это часто JSON, XML или YAML, но может быть любым другим допустимым типом MIME.
- Набор операций, поддерживаемых веб-службой, с использованием HTTP-методов (например, POST, GET, PUT или DELETE).
SOAP, первоначально определяемый как Simple Object Access Protocol, является спецификацией протокола для обмена структурированной информацией при внедрении веб-служб в компьютерных сетях. Он полагается на EXtensible Markup Language (XML) в качестве формата своего сообщения и обычно использует другие протоколы уровня приложения (в частности, Remote Procedure Call (RPC) и HTTP) для согласования и передачи сообщений. Этот XML-протокол состоит из трех частей:
- конверт - который определяет, что находится в сообщении, и как его обрабатывать -
- набор правил кодирования для выражения экземпляров типов данных, определенных приложением,
- и соглашение для представления вызовов процедур и ответов.
ссылки:
Кстати, простой поиск в Google может дать вам ответы...
Ответ 3
Хорошо, есть много знаний в переполнении стека по этой теме.
Я думаю, что лучшая статья, которая формулирует дух REST и как она сравнивается с такими технологиями, как SOAP, Как я объяснил REST моей жене.
В отличие от SOAP, REST не является стандартом, это скорее подход, который сосредоточен вокруг ресурсов и вещей, которые вы можете сделать для ресурсов. Глаголы HTTP GET, POST, PUT и DELETE являются типичными действиями, которые вы можете применить к любому ресурсу. SOAP - это стандарт, который игнорирует эти глаголы и изобрел более всеобъемлющий протокол, который работает на вершине самого популярного HTTP POST для максимального взаимодействия. В большинстве случаев эта дополнительная сложность не нужна, и простой HTTP-запрос GET для ресурса обычно достаточен для того, что может быть потенциально 1KB + SOAP + XML для достижения эквивалентного результата.
Вы также можете просмотреть блог Roy Fielding (изобретатель REST) для получения дополнительной информации о том, что это значит.
Ответ 4
Услуги RESTful ориентированы на скорость и простоту, устраняя накладные расходы SOAP для простых транзакций, которые требуются многим веб-службам. Однако служба, реализованная таким образом, очень специфична для HTTP, и вам будет трудно использовать ее вне этого контекста.
SOAP-сервисы предлагают больше готовых функций, а самое главное (imho, конечно) - открытие. Возможность добавлять ссылку на SOAP-сервис практически в любой среде разработчика и автоматически генерировать прокси-класс, который скроет основные сложности HTTP, даже до сериализации нетривиальных типов, очень и очень полезен.
Я чувствую, что оба эти подхода к разработке веб-сервисов имеют свое место. Для требований AJAX, которые не требуют ничего сложного, я, как правило, реализую как обработчик HTTP (ASP.NET). Все, что нужно вызывать из другого приложения или из нескольких мест в одном приложении, я реализую как службу SOAP из-за инкапсуляции протокола, которую он предоставляет, а также возможность вызова использования базового объекта без HTTP-служебных данных где это имеет смысл.
Ответ 5
1) REST более простой и простой в использовании, чем SOAP
2) REST использует протокол HTTP для создания или использования веб-сервисов, в то время как SOAP использует XML.
3) REST является легким по сравнению с SOAP и предпочтительным выбором в мобильных устройствах и КПК.
4) REST поддерживает разные форматы, такие как текст, JSON и XML, в то время как SOAP поддерживает только XML.
5) Вызов веб-служб REST можно кэшировать для повышения производительности.