Сравните и сравните веб-службы REST и SOAP? [дубликат]


этот вопрос уже есть ответ здесь:

в настоящее время я выясняю, что подобное использует интернет-протокол (HTTP) для обмена данными между потребителем и поставщиком.

разница это:

  1. SOAP-это протокол сообщений на основе XML, а REST-это архитектурный стиль
  2. SOAP использует WSDL для связи между потребителем и поставщиком, в то время как REST просто использует XML или JSON для отправки и получения данных
  3. SOAP вызывает службы, вызывая метод RPC, REST просто вызывает службы через URL-путь
  4. SOAP не возвращает читаемый человеком результат, в то время как результат REST читается с помощью простого XML или JSON
  5. мыло не только через HTTP, он также использует другие протоколы, такие как SMTP, FTP и т. д., REST-это только HTTP

Это все, что я знаю, как и различия между ними. Может ли кто-нибудь исправить меня и добавить больше.

3 73

3 ответа:

SOAP использует WSDL для связи между потребителем и поставщиком btw, тогда как REST просто использует XML или JSON для отправки и получения данных

WSDL определяет контракт между клиентом и службой и является статическим по своей природе. В случае REST контракт несколько сложен и определяется HTTP, URI, медиа-форматами и конкретным протоколом координации приложений. Это очень динамично в отличие от WSDL.

мыло не возвращает читаемый человеком результат, в то время как Результат REST читается с помощью простого XML или JSON

Это не правда. Простой XML или JSON не успокаивают вообще. Ни один из них не определяет какие-либо элементы управления(т. е. ссылки и отношения ссылок, информацию о методе, информацию о кодировании и т. д...) который против REST, поскольку сообщения должны быть автономными и координировать взаимодействие между агентом/клиентом и службой.

ссылки + семантическая связь клиентами должны быть в состоянии определить, что такое взаимодействие перейдите по этим ссылкам и продолжайте общение с сервисом.

Не обязательно, чтобы сообщения были удобочитаемыми, можно использовать зашифрованный формат и создавать совершенно допустимые приложения REST. Это не имеет значения, является ли сообщение читаемым человеком или нет.

отдых закончился только HTTP

неверно, HTTP наиболее широко используется, и когда мы говорим о веб-службах REST, мы просто предполагаем HTTP. HTTP определяет интерфейс с его методами (GET, POST, PUT, DELETE, PATCH и т. д.) и различными заголовками, которые могут использоваться равномерно для взаимодействия с ресурсами. Это единообразие можно достигнуть с другими протоколами как что ж.

С. П. Очень простое, но очень интересное объяснение отдыха:http://www.looah.com/source/view/2284

в повседневных, практических условиях программирования, самая большая разница заключается в том, что с SOAP вы работаете со статическими и строго определенными форматами обмена данными, где, как и с REST и JSON форматирование обмена данными очень свободно по сравнению. Например, с помощью SOAP можно проверить, что обмен данными соответствует схеме XSD. Поэтому XSD служит "контрактом" о том, как клиент и сервер должны понимать, как должны обмениваться данными структурированный.

данные JSON обычно не передается в соответствии с строго определенным форматом (если вы не используете фреймворк, который его поддерживает .. например http://msdn.microsoft.com/en-us/library/jj870778.aspx или реализация JSON-схемы).

фактически, некоторые (многие/большинство) утверждают, что" динамический " секретный соус JSON идет вразрез с философией/культурой ограничения его контрактами данных (должны ли веб-службы JSON RESTful использовать контракт данных)

люди, привыкшие работать в динамических свободно типизированных языках, как правило, чувствуют себя более комфортно с рыхлостью JSON, в то время как разработчики из строго типизированных языков предпочитают XML.

http://www.mnot.net/blog/2012/04/13/json_or_xml_just_decide

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

хотя SOAP обычно называют "веб-службы" это неправильное название. Мыло имеет очень мало общего с Интернетом. REST предоставляет истинные "веб-службы" на основе URI и HTTP.

в качестве иллюстрации вот несколько звонков и их соответствующий дом с комментариями.

getUser(User);

это операция rest при доступе к ресурсу (данным).

switchCategory(User, OldCategory, NewCategory)

REST разрешает множество различных форматов данных, где в качестве SOAP разрешает только XML. Хотя это может показаться, что это добавляет сложности для отдыха, потому что вам нужно обрабатывать несколько форматов, по моему опыту, это на самом деле было довольно полезно. В JSON, как правило, лучше подходит для данных и обрабатывает гораздо быстрее. Отдых позволяет лучше поддерживать для клиентов браузера из-за его поддержки JSON.