To prawdopodobnie naprawdę należy do komentarzy w kilku z powyższych postów, ale nie mam jeszcze przedstawiciela, który mógłby to zrobić, więc proszę.
Myślę, że to interesujące, że wiele zalet i wad często przytaczanych w przypadku SOAP i REST ma niewiele wspólnego z rzeczywistymi wartościami lub ograniczeniami tych dwóch technologii. Prawdopodobnie najczęściej cytowaną zaletą REST jest to, że jest „lekki” lub bardziej „czytelny dla człowieka”. Na pewnym poziomie jest to z pewnością prawda, REST ma niższą barierę wejścia - jest mniej wymagana struktura niż SOAP (chociaż zgadzam się z tymi, którzy powiedzieli, że dobre oprzyrządowanie jest tutaj w dużej mierze odpowiedzią - szkoda, że większość narzędzi SOAP jest dość okropne).
Poza tym początkowym kosztem wejścia myślę, że wrażenie REST pochodzi z połączenia postaci adresów URL żądań i złożoności danych wymienianych przez większość usług REST. REST ma tendencję do zachęcania do prostszych, bardziej czytelnych dla człowieka adresów URL żądań, a dane są również łatwiejsze do strawienia. W jakim jednak stopniu są one nieodłączne dla REST, a do jakiego stopnia są one tylko przypadkowe. Prostsza struktura adresu URL jest bezpośrednim wynikiem architektury - ale można ją równie dobrze zastosować do usług opartych na protokole SOAP. Bardziej strawne dane są prawdopodobnie wynikiem braku określonej struktury. Oznacza to, że lepiej utrzymuj proste formaty danych, w przeciwnym razie będziesz mieć dużo pracy. Więc tutaj dodatkowa struktura SOAP,
Tak więc, jeśli chodzi o wymianę ustrukturyzowanych danych między systemami komputerowymi, nie jestem pewien, czy REST jest z natury lepszy niż SOAP (lub odwrotnie), są po prostu inne. Myślę, że powyższe porównanie REST vs SOAP z dynamicznym vs statycznym typowaniem jest dobre. Tam, gdzie języki dynamiczne mają tendencję do wpadania w kłopoty, jest długoterminowe utrzymanie i utrzymanie systemu (a na dłuższą metę nie mówię o roku lub 2, mówię o 5 lub 10). Ciekawie będzie zobaczyć, czy REST napotyka z czasem te same wyzwania. Wydaje mi się, że tak będzie, więc gdybym budował rozproszony system przetwarzania informacji, skłoniłbym się do SOAP jako mechanizmu komunikacji (również ze względu na transmisję i warstwowość protokołu aplikacji oraz elastyczność, którą zapewnia, jak wspomniano powyżej).
W innych miejscach REST wydaje się bardziej odpowiedni. AJAX między klientem a jego serwerem (niezależnie od ładunku) jest jednym z głównych przykładów. Nie przejmuję się długowiecznością tego typu połączeń, a łatwość obsługi i elastyczność są na najwyższym poziomie. Podobnie, gdybym potrzebował szybkiego dostępu do jakiejś usługi zewnętrznej i nie sądziłem, że będę się przejmował utrzymywalnością interakcji w czasie (ponownie zakładam, że to jest miejsce, w którym REST będzie mnie kosztować więcej, w jedną stronę lub inny), wtedy mógłbym wybrać REST, aby móc szybko wchodzić i wychodzić.
W każdym razie obie są realnymi technologiami iw zależności od tego, jakie kompromisy chcesz osiągnąć dla danej aplikacji, mogą Ci służyć dobrze (lub słabo).