Wcześniej zaimplementowałem interfejs API REST i bardzo mi się podobało. Zasadniczo, kiedy implementujesz REST przez SOAP, twój klient / serwer jest bardziej ortogonalny, co oznacza, że możesz o wiele bardziej swobodnie zmieniać serwer bez wpływu na twoich klientów. Ta ortogonalność wynika z zastosowania bardziej abstrakcyjnej i już dobrze zdefiniowanej komunikacji za pomocą czasowników HTTP. Ponadto użycie hiperłączy zawartych w odpowiedziach REST ułatwia rozszerzenie i rozbudowę interfejsu API stosunkowo bezboleśnie. Klienci powinni podążać za tymi osadzonymi linkami, aby uzyskać dostęp do nowych zasobów, tak jak człowiek podążałby za linkami na stronie internetowej, aby „uzyskać więcej informacji”.
Powiedziawszy to, miałem kilku współpracowników, którym powiedziano, że muszą używać SOAP i narzekali na to przez cały czas. Więc zająłem się badaniem tych dwóch bardziej szczegółowo.
Ogólnie stwierdziłem, że REST dobrze nadaje się do wysoce rozproszonych aplikacji , gdy masz setki, tysiące lub miliony klientów . Jednym z powodów jest wspomniana wyżej ortogonalność, innym jest buforowanie, które otrzymujesz za darmo, ponieważ używasz HTTP.
SOAP może być szybszym rozwiązaniem, gdy potrzebujesz mniejszego interfejsu API dla klienta lub dwóch i nie martwisz się zbytnio skalowalnością. Może to również pasować lepiej, jeśli nie masz architektury opartej na zasobach , ponieważ może to zająć trochę czasu, aby zrestrukturyzować aplikację, aby móc nawet wdrożyć REST.