5 min de lectura

API REST vs API SOAP

Ambos son API que tienen el propósito de dar servicios web.

Las API pueden ser definidas como interfaces o herramientas que tiene el software para comunicarse entre si.

Las APIsson muy importantes por su capacidad para poder reutilizar recursos, lógica, funciones e infraestructuras programadas por otros.

Buenos ejemplos podrían ser obtener datos de un lugar por medio de google maps, loggearse con facebook en alguna pagina en lugar de tener que hacer una cuenta nueva, saber el clima de algún lugar, etc.

¿Qué es API SOAP?

SOAP(simple object acces protocol) Es como ya se dijo un protocolo de comunicación entre dos computadoras por medio de un archivo XML(WSDL). Concebido como reemplazo para DCOM por microsoft por esto va bien de la mano con cosas como .net (por otro lado es mas complejo hacer conexión con javascript) .

Es utilizado para la comunicación entre aplicaciones por lo tanto se le ‘invoca’ con una RPC(Remote Procedure Call) que encapsula la información necesaria para llevar acabo la comunicación entre máquinas y esto es un factor importante ya que este manejo de las comunicaciones son lo que puede hacer lento a SOAP y mas demandante en cuanto a recursos. SOAP también puede utilizar otros protocolos aparte de HTTP como lo serian FTP y TCP.

A continuación tenemos  un ejemplo de una llamada a soap con jquery , podemos ver como es mas elaborado ya que debemos de describir el mensaje xml que realmente es lo único “extra” que se debería de hacer en contraste con una llamada a rest por medio de ajax

El siguiente código es un ejemplo en php utilizando soapClient , como vemos en el caso de php es muy simple lo que debemos hacer , iniciamos una conexión en la variable cliente y hacemos la ejecución de la llamada en la variable respuesta , donde enviamos el nombre de la función que queremos que tome acción con ciertos datos

 

¿Qué es API REST?

REST(REpresentational State Transfer) fue concebido por Roy T. Fielding quien formo parte del desarrollo de HTTP,  por tanto, este fue tomado en cuenta haciendo que REST pueda utilizar métodos de HTTP para su comunicación asi como nos permite definir los propios. Utiliza json al emitir respuestas por que es mas fácil utilizarlo ya que es interpretado por javascript naturalmente. Es posible utilizar otros lenguajes o formatos de respuesta como podria ser xml o un binario. En REST se acceden a los servicios por medio de url. Es bastante ligero dada la simpleza de la conexión ya que toda la información necesaria va en la url.

A continuación tenemos algunos ejemplos del uso de rest con distintos lenguajes, como podemos observar algunos requieren mas código que otros

el siguiente código es un ejemplo de una llamada a rest en jquery , como vemos con el uso de ajax se vuelve bastante simple el proceso , en una llamada de ajax bastaría con definir el tipo de accion a tomar , la url de la api (ejemplo:”http://example.com/create_widget” ) y los datos si es que es necesario enviar alguno

El siguiente código utiliza cURL de php es una forma en la que podemos hacer llamadas a una api adjuntando en varias lineas de código elementos a una variable como lo serian los datos , método a utilizar , información a enviar o incluso alguna forma para identificarnos como usuarios

¿Cuál es el mas utilizado?

De los dos REST es el que tiene mayor popularidad, esto es por la gran cantidad de paginas web existentes y la facilidad que tiene REST para ser implementado y mantenido al igual que la flexibilidad que presenta en lo que respecta a sus comunicaciones.

Conclusión:

Lo mejor para elegir uno de ellos seria pensar en que es lo que estamos desarrollando y en que lo estamos desarrollando, ya que la forma de interactuar con cada uno sera diferente. REST puede verse muy fuerte al momento de tener que compartir información, mientras, SOAP es fuere al momento de buscar compartir lógica. En caso de fallos REST espera a que el usuario reintente , por otro lado, SOAP tiene incluido un reintentar. Otro factor importante es la seguridad y aunque ambos cuentan con soporte para ssl SOAP también tiene soporte de WS-security.

Deja tus comentarios

This site uses Akismet to reduce spam. Learn how your comment data is processed.