Esto probablemente pertenece como comentarios en varias de las publicaciones anteriores, pero aún no tengo el representante para hacerlo, así que aquí va.
Creo que es interesante que muchos de los pros y los contras que se mencionan a menudo para SOAP y REST tienen (IMO) muy poco que ver con los valores o límites reales de las dos tecnologías. Probablemente la ventaja más citada de REST es que es "liviana" o tiende a ser más "legible por humanos". En un nivel, esto es ciertamente cierto, REST tiene una barrera de entrada más baja: hay menos estructura requerida que SOAP (aunque estoy de acuerdo con aquellos que han dicho que las buenas herramientas son en gran medida la respuesta aquí; lástima que gran parte de las herramientas SOAP es bastante espantoso).
Sin embargo, más allá del costo de entrada inicial, creo que la impresión REST proviene de una combinación de la forma de las URL de solicitud y la complejidad de los datos intercambiados por la mayoría de los servicios REST. REST tiende a fomentar URL de solicitud más simples y legibles por humanos, y los datos también tienden a ser más digeribles. Sin embargo, ¿en qué medida son inherentes a REST y en qué medida son meramente accidentales? La estructura de URL más simple es un resultado directo de la arquitectura, pero podría aplicarse igualmente bien a los servicios basados en SOAP. Es más probable que los datos más digeribles sean el resultado de la falta de una estructura definida. Esto significa que es mejor que mantenga sus formatos de datos simples o tendrá mucho trabajo. Así que aquí la estructura adicional de SOAP,
Entonces, para su uso en el intercambio de datos estructurados entre sistemas informáticos, no estoy seguro de que REST sea intrínsecamente mejor que SOAP (o viceversa), simplemente son diferentes. Creo que la comparación anterior de REST vs SOAP con la tipificación dinámica vs estática es buena. Donde los lenguajes dinámicos tienden a tener problemas es en el mantenimiento a largo plazo y el mantenimiento de un sistema (y a largo plazo no estoy hablando de un año o 2, estoy hablando de 5 o 10). Será interesante ver si REST se enfrenta a los mismos desafíos a lo largo del tiempo. Tiendo a pensar que así será, así que si estuviera construyendo un sistema de procesamiento de información distribuido, gravitaría hacia SOAP como el mecanismo de comunicación (también debido a las capas de protocolo de transmisión y aplicación y la flexibilidad que ofrece, como se mencionó anteriormente).
En otros lugares, aunque REST parece más apropiado. AJAX entre el cliente y su servidor (independientemente de la carga útil) es un ejemplo importante. No me importa mucho la longevidad de este tipo de conexión y la facilidad de uso y la flexibilidad son mínimas. De manera similar, si necesitaba acceso rápido a algún servicio externo y no pensé que me iba a importar la mantenibilidad de la interacción a lo largo del tiempo (nuevamente, supongo que aquí es donde REST terminará costándome más, de una manera u otro), entonces podría elegir DESCANSO solo para poder entrar y salir rápidamente.
De todos modos, ambas son tecnologías viables y, dependiendo de las compensaciones que desee realizar para una aplicación determinada, pueden servirle bien (o mal).