SOAP Y REST
Que es SOAP:
Los servicios SOAP o mejor conocidos simplemente como Web Services, son servicios que basan su
comunicación bajo el protocolo SOAP (Simple Object Access Protocol) el cual este definido por
Wikipedia como “protocolo estándar que define cómo dos objetos en diferentes procesos pueden
comunicarse por medio de intercambio de datos XML”. Por lo tanto, queda claro que la
comunicación se realiza mediante XML, lo cual nos debe de quedar muy claro, pues es en este
aspecto donde radican las principales diferencias contra REST. Los servicios SOAP funcionan por lo
general por el protocolo HTTP que es lo más común cuando invocamos un Web Services, sin
embargo, SOAP no está limitado a este protocolo, si no que puede ser enviado por FTP, POP3, TCP,
Colas de mensajería (JMS, MQ, etc). Pero como comentaba, HTTP es el protocolo principal.
Que es REST
Por otra parte, tenemos REST, el chico nuevo de la cuadra. REST ya tiene unos años, pero en
realidad tiene poco que se le empezó a dar la importancia que hoy tiene. REST es una tecnología
mucho más flexible que transporta datos por medio del protocolo HTTP, pero este permite utilizar
los diversos métodos que proporciona HTTP para comunicarse, como lo son GET, POST, PUT,
DELETE, PATCH y a la vez, utiliza los códigos de respuesta nativos de HTTP (404,200,204,409). REST
es tan flexible que permite transmitir prácticamente cualquier tipo de datos, ya que el tipo de
datos está definido por el Header Content-Type, lo que nos permite mandar, XML, JSON, Binarios
(imágenes, documentos), Text, etc. que contrasta con SOAP que solo permite la transmisión de
datos en formato XML. A pesar de la gran variedad de tipos de datos que podemos mandar con
REST, la gran mayoría transmite en JSON por un motivo muy importante, JSON es interpretado de
forma natural por JavaScript, lo que ha hecho que frameworks como Angular y React se
aprovechen al máximo, pues pueden enviar peticiones directas al servidor por medio de AJAX y
obtener los datos de una forma nativa. Los formularios de HTML pueden ser apuntados a los
servicios REST sin ningún problema (por ejemplo).