Ви не можете порівнювати REST і SOAP. REST - це архітектурний стиль, тоді як SOAP - протокол.
На жаль, REST став розмовно-розмовним синонімом служби RESTful HTTP, що означає реалізацію архітектури стилю REST з протоколом HTTP як (додаток) протоколу.
REST заснований на наступних принципах (обмеження та елементи) (у дужках реалізація в RESTful HTTP) [1] .
- Без громадянства (HTTP - протокол без громадянства)
- Ресурс (ідентифікований URI)
- Уніфікований інтерфейс (методи HTTP)
- Представництво (MIME-TYPE)
- HATEOS (гіперпосилання)
- Кеш (HTTP кеш)
З іншого боку, багато людей мають на увазі, кажучи SOAP веб-службою на основі WSDL та SOAP, які є частиною архітектури веб-служб W3C [2] .
- SOAP використовується як протокол для обміну інформацією (в основному назва методу, параметри, значення повернення, типи даних, ...).
- WSDL мова визначення інтерфейсу для опису веб-служби.
У чому полягає сучасне значення SOAP *?
SOAP - стандарт W3C і використовується як формат обміну інформацією у веб-службах W3C. Ці веб-сервіси були - особливо під час розкручування SOA (архітектури, орієнтовані на сервіс) близько 2008 року (+ - 3 роки) - і (на жаль) досі застосовуються здебільшого у корпоративних додатках.
Це має кілька причин. Тоді RESTful HTTP був невідомий, і його неправильно зрозуміли. На жаль, досі невірно зрозуміти інші відповіді
„[...] REST значно обмежений, ніж SOAP [...]."
„Основна мета REST - представляти ресурси в Інтернеті [...].“
Крім того, SOAP (і WSDL) є частиною стеку протоколу веб-служб W3C, який забезпечує ще більше стандартів для впровадження веб-сервісу.
Чи все ще люди розробляють нові API на основі SOAP, або це в основному спадщина?
Так, так, все ще є і в майбутніх системах там, які використовують SOAP (принаймні, у корпоративних системах, переважно за дверима). Але більшість намагається сьогодні зробити якийсь "РЕЗЕТ".
Чи може хтось, будь ласка, виправити мене, якщо я помиляюся щодо цієї різниці між SOAP та REST?
Скажімо, що REST - це більш гнучка архітектура без громадянства для передачі даних - це не гарне пояснення. Простіше кажучи, REST - це стиль архітектури з конкретними обмеженнями та елементами. Тоді як SOAP - протокол обміну інформацією.
Як я вже писав, ви не можете їх порівняти. Але ви можете порівняти веб-сервіс RESTful HTTP з веб-сервісом SOAP / WSDL.