No puede comparar REST y SOAP. REST es un estilo arquitectónico, mientras que SOAP es un protocolo.
Desafortunadamente, REST se convirtió coloquialmente en sinónimo de servicio HTTP RESTful, lo que significa una realización de arquitectura de estilo REST con HTTP como protocolo (de aplicación).
REST se basa en los siguientes principios (restricciones y elementos) (entre paréntesis la realización en RESTful HTTP) [1] .
- Sin estado (HTTP es un protocolo sin estado)
- Recurso (identificado por URI)
- Interfaz uniforme (métodos HTTP)
- Representación (TIPO MIME)
- HATEOS (hipervínculos)
- Caché (Caché HTTP)
Por otro lado, mucha gente quiere decir que SOAP es un servicio web basado en WSDL y SOAP que forman parte de la arquitectura del servicio web W3C [2] .
- SOAP se utiliza como protocolo para intercambiar información (básicamente nombre del método, parámetros, valores de retorno, tipos de datos, ...).
- WSDL, un lenguaje de definición de interfaz para describir el servicio web.
¿Cuál es el significado actual de SOAP *?
SOAP es un estándar del W3C y se utiliza como formato de intercambio de información en los servicios web del W3C. Esos servicios web fueron, especialmente durante la exageración de las SOA (arquitecturas orientadas a servicios) alrededor de 2008 (+ - 3 años) y (desafortunadamente) todavía se implementan principalmente en aplicaciones empresariales.
Esto tiene varias razones. En aquel entonces, RESTful HTTP no era bien conocido y se entendía mal. Desafortunadamente, todavía no se comprende bien. Mira las otras respuestas.
"[...] REST es mucho más limitado que SOAP [...]".
"El objetivo principal de REST es representar los recursos en Internet [...]".
Además, SOAP (y WSDL) son parte de la pila de protocolos del servicio web W3C que proporciona aún más estándares para implementar un servicio web.
¿La gente todavía está desarrollando nuevas API basadas en SOAP, o ahora es principalmente un legado?
Entonces sí, todavía hay y habrá también en futuros sistemas que estén utilizando SOAP (al menos en sistemas empresariales, principalmente detrás de las puertas). Pero la mayoría está tratando de hacer algún tipo de "DESCANSO" hoy en día.
¿Puede alguien corregirme si estoy equivocado acerca de esta diferencia entre SOAP y REST?
Decir que REST es una arquitectura sin estado más flexible para la transferencia de datos no es una buena explicación. REST, simplemente hablado, es un estilo de arquitectura con restricciones y elementos específicos. Mientras que SOAP es un protocolo de intercambio de información.
Como ya escribí, no puedes compararlos. Pero puede comparar un servicio web RESTful HTTP con un servicio web SOAP / WSDL.