Это, вероятно, действительно относится к комментариям в нескольких из вышеперечисленных сообщений, но у меня пока нет представителя, чтобы сделать это, так что поехали.
Я думаю, что интересно, что многие плюсы и минусы, которые часто упоминаются для SOAP и REST, имеют (IMO) очень мало общего с фактическими значениями или ограничениями двух технологий. Вероятно, наиболее цитируемым преимуществом REST является то, что он «легкий» или более «читаемый человеком». На одном уровне это, безусловно, правда, REST имеет более низкий барьер для входа - требуется меньшая структура, чем SOAP (хотя я согласен с теми, кто сказал, что хорошие инструменты - это в значительной степени ответ здесь - слишком плохая часть инструментов SOAP - это довольно ужасно).
Однако, помимо этой первоначальной стоимости входа, я думаю, что впечатление REST возникает из-за комбинации формы URL-адресов запроса и сложности данных, которыми обмениваются большинство служб REST. REST имеет тенденцию поощрять более простые, более удобочитаемые URL-адреса запросов, а данные также имеют тенденцию быть более удобоваримыми. Однако в какой степени они присущи REST и в какой степени они просто случайны. Более простая структура URL-адресов является прямым результатом архитектуры, но она также может быть применена к службам на основе SOAP. Более удобоваримые данные, скорее всего, являются результатом отсутствия какой-либо определенной структуры. Это означает, что вам лучше поддерживать простые форматы данных, иначе вам придется много работать. Итак, вот дополнительная структура SOAP,
Поэтому для использования при обмене структурированными данными между компьютерными системами я не уверен, что REST по своей природе лучше, чем SOAP (или наоборот), они просто разные. Я думаю, что приведенное выше сравнение REST и SOAP с динамической и статической типизацией является хорошим. Где дианмические языки, как правило, приводят к проблемам, так это в долгосрочном обслуживании и поддержании системы (и в долгосрочной перспективе я говорю не год или два, я говорю 5 или 10). Будет интересно посмотреть, столкнется ли REST с теми же проблемами со временем. Я склонен думать, что так оно и будет, поэтому, если бы я создавал распределенную систему обработки информации, я бы предпочел SOAP в качестве механизма связи (также из-за многоуровневости и гибкости протоколов передачи и приложений, которые он предоставляет, как было упомянуто выше).
В других местах REST кажется более подходящим. Одним из основных примеров является AJAX между клиентом и его сервером (независимо от полезной нагрузки). Я не особо беспокоюсь о долговечности этого типа подключения, а простота использования и гибкость на первом месте. Точно так же, если мне нужен быстрый доступ к какой-то внешней службе, и я не думал, что буду заботиться о ремонтопригодности взаимодействия с течением времени (опять же, я предполагаю, что именно здесь REST в конечном итоге будет стоить мне больше, в одну сторону или другое), тогда я мог бы выбрать REST, чтобы я мог быстро входить и выходить.
В любом случае, это обе жизнеспособные технологии, и в зависимости от того, какие компромиссы вы хотите сделать для данного приложения, они могут служить вам хорошо (или плохо).