Це, мабуть, справді належить до коментарів у декількох вищезазначених публікаціях, але я ще не маю відповіді, щоб це зробити, тому ось що.
Я думаю, що цікаво, що багато плюсів і мінусів, які часто згадуються для SOAP і REST, мають (IMO) дуже мало спільного з фактичними значеннями або обмеженнями двох технологій. Напевно, найбільш процитованим профі для REST є те, що він "легкий" або має тенденцію бути більш "читабельним для людини". На одному рівні це, безумовно, вірно, REST має менший бар'єр для входу - там потрібна структура менш, ніж SOAP (хоча я згоден з тими, хто сказав, що хороший інструмент є значною мірою відповіддю тут - занадто погано багато інструментів SOAP досить жахливо).
Однак, окрім початкової вхідної вартості, я думаю, що враження від REST походить від поєднання форми URL-адреси запиту та складності даних, якими обмінюється більшість служб REST. REST прагне заохочувати більш прості, зрозуміліші для людини URL-адреси запитів, а також дані є більш зрозумілими. Наскільки вони притаманні REST і в якій мірі вони є лише випадковими. Простіша структура URL - це прямий результат архітектури - але вона може бути однаково добре застосована до служб на основі SOAP. Чим більше засвоюваних даних швидше буде наслідком відсутності будь-якої визначеної структури. Це означає, що вам краще зберегти прості формати даних, або ви будете мати велику роботу. Отже, тут додаткова структура SOAP,
Тож для використання в обміні структурованими даними між комп'ютерними системами я не впевнений, що REST за своєю суттю кращий, ніж SOAP (або без візи), вони просто різні. Я думаю, що порівняння вище REST проти SOAP до динамічного проти статичного набору тексту є гарним. Там, де діаманські мови, як правило, стикаються з неприємностями, - це тривале обслуговування та обслуговування системи (і довгостроково я не говорю рік чи 2, я говорю 5 чи 10). Буде цікаво побачити, чи REST стикається з тими ж проблемами з часом. Я схильний вважати, що це станеться так, якби я будував розподілену систему обробки інформації, я би тяжів до SOAP як механізму зв'язку (також через шарування протоколу передачі та застосування та гнучкість, яку він надає, як було зазначено вище).
В інших місцях хоч REST здається більш підходящим. AJAX між клієнтом та його сервером (незалежно від корисної навантаження) - один з головних прикладів. Я не дуже дбаю про довговічність цього типу зв’язку, легкість у використанні та гнучкість - це перевага. Так само, якби мені був потрібний швидкий доступ до якоїсь зовнішньої служби, і я не думав, що я буду піклуватися про збереження взаємодії з часом (знову припускаю, що саме тут REST в кінцевому рахунку обійдеться мені дорожче, один спосіб або інше), то я можу вибрати REST просто для того, щоб я міг швидко заходити та виходити.
У будь-якому разі, вони є обома життєздатними технологіями і залежно від того, які компроміси ви хочете зробити для даної програми, вони можуть служити вам добре (або неякісно).