REST естественно подходит для Web / Cloud API, в то время как SOAP подходит для сценариев распределенных вычислений.
Пропускная способность является основным преимуществом REST, так как нет сложного документа для прохождения (например, XML, заголовки SOAP), что крайне важно для эффективной работы Web API. JSON является широко признанным и простым стандартом для обмена данными и легко читается браузерами и клиентским кодом, поэтому большинство API RESTful (Yahoo является хорошим примером) предлагают JSON.
Не говоря уже о том, что REST доступен для объекта XmlHttpRequest, что, опять же, крайне важно для возможности AJAX для веб-API.
И, конечно же, функция REST не может быть проигнорирована. Поскольку REST основан на HTTP, он может использовать многие из семантики HTTP (и самой сети), используя заголовки в пакетах HTTP (срок действия которых истекает) для включения кэширования браузером. Не говоря уже о таких вещах, как сжатие gzip для повышения эффективности. С точки зрения производительности, REST действительно превосходит SOAP.
Что касается SOAP, то SOAP обслуживает операции с состоянием. Стандарт WS * (Безопасность, Транзакции и т. Д.) Обрабатывает этот вид сантехники, что довольно часто встречается в распределенных сценариях. Конечно, это можно сделать с помощью REST, но тогда это не будет REST. SOAP действительно хорош для определения операционных контрактов между клиентом и сервером, что крайне важно в распределенных сценариях.
Так что, на мой взгляд (и в целом SOAP против REST высоко ценится), используйте SOAP для сценариев распределенных вычислений, используйте REST для Web API.