IMO, SOAP fue un estándar creado como un tipo de contrato de arquitecto de mensajes, es decir. Cuando pasa mensajes solo use este "contrato". Era tan genérico que no abarca ninguna tecnología en particular.
REST es una metodología real que abarca HTTP, es una forma de utilizar GET, POST, PUT y DELETE a su máximo potencial.
No supongo que uno es mejor que el otro, lo que realmente se reduce a utilizar la herramienta adecuada para el trabajo. No haría una distinción entre aplicaciones basadas en web y no basadas en web. Porque SOAP o REST pueden ser beneficiosos para ambos.
Aquí hay algunas preguntas que me responderían primero:
1) ¿Quién es mi cliente de destino? Microsoft Workshop Client, Java, tipo PHP.
2) ¿Qué tipos de (La falta de un término mejor.) "Puntos finales" quiero exponer a mi Api. (JSON, XML, Ajax, POX o todo lo anterior.)
3) ¿Qué van a hacer mis clientes con esta API? ¿Ya tienen clientes basados en SOAP? Si es así, SOAP es el camino a seguir.
4) REST le hará pensar en el diseño de su URL y, por lo tanto, le permitirá a un cliente "combinar" los datos para crear lo que necesita. Entonces, si piensas que es algo que quieres. REST es el camino a seguir.
5) REST hace uso de "GET" en HTTP, esto permite que un cliente almacene los resultados. "Conditional GET es lo que se llama. Les permite almacenar en caché un objeto grande, pregunte al servidor por un encabezado (pequeño) si la última actualización coincide con lo que se almacena en caché, de ser así. No se moleste con un objeto completo GET, qué se almacena en caché es la versión más reciente. esto se puede hacer de jabón, pero fuera de la caja, el resto es mejor para esto.
de todos modos, es de esperar que le brinda los mejores datos, para que pueda tomar la mejor decisión. Y si todo lo demás puede hacer ambas cosas, pero deberá tratar de obtener dos tipos de servicios (diferentes metodologías) y una base de código para ambos. (puede ser complicado, pero no tan difícil)
Personalmente, elegiría uno, y si alguna vez necesitas el otro, quema ese puente y paga la deuda técnica por ello.
En el punto n. ° 2, ya no es cierto que la API REST no contenga esos puntos finales. Por ejemplo, puede obtener eliminado: http://www.salesforce.com/us/developer/docs/api_rest/Content/dome_get_deleted.htm – joshdick