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

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

Ответ 1

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

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

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

Ответ 2

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

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

t для многих типов клиентов проще использовать веб-службы 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 - это услуги, которые легко интегрировать с существующими веб-сайтами.

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

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

Ответ 3

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

Я очень согласен с Роб Робером в его посте. Да, есть так много адвокатов. Я перечислил разницу между мылом и отдыхом.

Ответ 4

Существует хорошая блок-схема, которую вы можете использовать, чтобы помочь вам выбрать между 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-сервисы.