He implementado una API REST antes y realmente me gustó. En general, cuando implementa REST sobre SOAP, su cliente / servidor es más ortogonal, lo que significa que puede cambiar mucho más libremente el servidor sin afectar a su (s) cliente (s). Esta ortogonalidad se debe al uso de una comunicación más abstracta y bien definida a través de verbos HTTP. Además, el uso de hipervínculos incrustados en sus respuestas REST hace que sea más fácil extender y hacer crecer su API relativamente sin problemas. Se supone que los clientes deben seguir estos enlaces incrustados para obtener nuevos recursos, como un ser humano seguiría los enlaces en una página web para 'profundizar' para obtener más información.
Dicho esto, tuve algunos compañeros de trabajo a quienes les dijeron que tenían que usar SOAP y se quejaron de eso todo el tiempo. Así que empecé a investigar los dos un poco más en detalle.
En general, lo que encontré es que REST es muy adecuado para aplicaciones altamente distribuidas , cuando tienes cientos, miles o millones de clientes . Una razón es la ortogonalidad mencionada anteriormente, otra es el almacenamiento en caché que obtienes de forma gratuita ya que estás utilizando HTTP.
SOAP puede ser el camino más rápido cuando necesita una API más pequeña para un cliente o dos rápidamente y no está demasiado preocupado por la escalabilidad. También podría encajar mejor si no tiene una arquitectura estructurada en torno a los recursos , ya que puede llevarle algún tiempo reestructurar su aplicación para incluso poder implementar REST.