Руководство по выбору между сервисами REST и SOAP?

StackOverflow https://stackoverflow.com/questions/28950

  •  09-06-2019
  •  | 
  •  

Вопрос

Есть ли у кого-нибудь ссылки на документацию или руководства по принятию решения между REST иМЫЛО?Я понимаю и то, и другое, но ищу некоторые ссылки на ключевые моменты принятия решений, например, безопасность, которые могут заставить вас склониться к тому или иному.

Это было полезно?

Решение

Первый хит Google кажется довольно всеобъемлющим.

Я думаю, проблема здесь в том, что слишком много сторонников того или иного варианта, может быть, лучше погуглить и самому разобраться в аргументах "за" / "против" и принять собственное решение.

Я знаю, это звучит немного неубедительно, но в конечном счете такого рода дизайнерские решения ложатся на плечи разработчика / архитектора, работающего над этим, и в 99% случаев решающим фактором будет проблемная область (или, по крайней мере, так должно быть), а не руководство в сети.

Другие советы

Стандарт Simple Object Access Protocol (SOAP) - язык XML, определяющий архитектуру сообщений и форматы сообщений, используемый веб-службами. Он содержит описание операций.WSDL - это основанный на XML язык для описания веб-служб и способов доступа к ним.будет работать по SMTP, HTTP, FTP и т.д.Требуется поддержка промежуточного программного обеспечения, четко определенный механизм для определения таких сервисов, как WSDL + XSD, WS-Policy SOAP будет возвращать данные на основе XML, SOAP обеспечит стандарты безопасности и надежности

Веб-службы репрезентативной передачи состояний (RESTful).это веб-сервисы второго поколения.Веб-службы RESTful взаимодействуют по протоколу HTTP, а не на основе SOAP, и не требуют XML-сообщений или определений API-сервисов WSDL.для REST промежуточное программное обеспечение не требуется, требуется только поддержка HTTP.Стандарт WADL, REST может возвращать XML, обычный текст, JSON, HTML и т. Д

многим типам клиентов проще использовать веб-службы RESTful, позволяя серверной части развиваться и масштабироваться.Клиенты могут использовать некоторые или все аспекты сервиса и объединять его с другими веб-сервисами.

REST uses standard HTTP so it is simplerto creating clients, developing APIs 
REST permits many different data formats like XML, plain text, JSON, HTML where  as  SOAP only permits XML.
REST has better performance and scalability.
Rest and can be cached and SOAP can't 
Built-in error handling where SOAP has No error handling
REST is particularly useful PDA and other mobile devices.

Сервисы REST is легко интегрируются с существующими веб-сайтами.

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

Для сложных API SOAP будет более полезным.

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

Я во многом согласен с +Робом Купером в его посте.Да, есть так много защитников.Я перечислил следующие разница между soap и rest.

Существует хорошая блок-схема, которую вы можете использовать, чтобы помочь вам сделать выбор между REST и SOAP.

Ссылка на блок-схему: https://drive.google.com/file/d/0B3zMtAq1Rf-sdVFNdThvNmZWRGc/edit

Ссылка на статью: https://www.linkedin.com/pulse/20140818062318-7933571-soap-vs-rest-flowchart-to-determine-the-right-web-services-protocol-for-your-needs

Двумя другими факторами, которые я использую для принятия этого решения, являются:

1) Будут ли клиентам Сервиса требоваться типы носителей, отличные от XML (например, JSON).Если да, то используйте REST.

2) Всегда ли клиентом Сервиса будет Приложение / Сервер (напримерне клиент RIA или AJAX).Если нет, то это склоняется к REST, поскольку при использовании AJAX проще использовать REST-сервисы.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top