Nie można porównać REST i SOAP. REST to styl architektoniczny, a SOAP to protokół.
Niestety REST stał się potocznym synonimem usługi RESTful HTTP, co oznacza realizację architektury w stylu REST za pomocą protokołu HTTP jako (aplikacji).
REST opiera się na następujących zasadach (ograniczenia i elementy) (w nawiasach realizacja w RESTful HTTP) [1] .
- Bezstanowy (HTTP jest protokołem bezstanowym)
- Zasób (identyfikowany przez URI)
- Jednolity interfejs (metody HTTP)
- Reprezentacja (TYP MIME)
- HATEOS (hiperłącza)
- Pamięć podręczna (pamięć podręczna HTTP)
Z drugiej strony wiele osób ma na myśli mówiąc, że SOAP to usługa sieciowa oparta na WSDL i SOAP, które są częścią architektury usług sieciowych W3C [2] .
- SOAP służy jako protokół do wymiany informacji (w zasadzie nazwa metody, parametry, zwracane wartości, typy danych, ...).
- WSDL język definicji interfejsu opisujący usługę internetową.
Jakie jest współczesne znaczenie SOAP *?
SOAP jest standardem W3C i jest używany jako format wymiany informacji w serwisach internetowych W3C. Te usługi internetowe były - szczególnie podczas szumu SOA (archiwa zorientowane na usługi) około 2008 r. (+ - 3 lata) - i (niestety) są nadal wdrażane głównie w aplikacjach dla przedsiębiorstw.
Ma to kilka przyczyn. Wówczas RESTful HTTP nie był dobrze znany i został źle zrozumiany. Niestety, nadal jest źle rozumiany, spójrz na inne odpowiedzi
„[...] REST jest znacznie bardziej ograniczony niż SOAP [...].”
„Głównym celem REST jest reprezentowanie zasobów w Internecie [...].”
Ponadto SOAP (i WSDL) są częścią stosu protokołów usług sieciowych W3C, który zapewnia jeszcze więcej standardów wdrażania usługi internetowej.
Czy ludzie nadal opracowują nowe interfejsy API oparte na SOAP, czy to w większości jest już spuścizna?
Więc tak, nadal istnieją i będą w przyszłości systemy, które używają SOAP (przynajmniej w systemach korporacyjnych, głównie za drzwiami). Ale większość próbuje dziś zrobić „REST”.
Czy ktoś może mnie poprawić, jeśli się mylę co do różnicy między SOAP a REST?
Mówienie, że REST jest bardziej elastyczną bezstanową architekturą do przesyłania danych, nie jest dobrym wytłumaczeniem. Mówiąc prosto, REST to styl architektury ze specyficznymi ograniczeniami i elementami. Natomiast SOAP jest protokołem wymiany informacji.
Jak już napisałem, nie możesz ich porównać. Ale możesz porównać usługę WWW RESTful HTTP z usługą SOAP / WSDL.