Un web service es una de las formas que tenemos para disponibilizar interfaces de nuestro sistema a terceros. Con lo cual pueden consultar, agregar, borrar y modificar datos de nuestro sistema invocando los distintos endpoints habilitados.
Existen dos tipos ampliamente utilizados para dicha función, los cuales son SOAP y RESTful. SOAP fue usado ampliamente en el pasado y se basa en el intercambio de datos en formato XML, mientras que, REST gano bastante terreno y principalmente lo usamos con estructuras en JSON.
Haciendo una comparación rápida entre cada uno tenemos la siguiente tabla
SOAP | RESTful |
Es un protocolo | Es un arquitectura |
No puede usar REST porque no es un protocolo | Como es un concepto puede usar cualquier protocolo como HTML, SOAP |
Usa interfaces de servicios para exponer la lógica de negocio | Usa URI para exponer la lógica de negocio |
Define estándares a seguir | No define tantos estándares como SOAP |
Requiere mas ancho de banda y recursos, al usar XML el volumen de datos es mayor | No requiere tanto ancho de banda y recursos puesto que usa JSON y es mas acotado que el XML |
Define su propia seguridad | Hereda las medidas de seguridad del medio de transporte |
Solo permite datos en XML | Permite distintos formatos como texto plano, HTML, XML, JSON, etc |
Actualmente no es tan usado | Se prefiere antes que SOAP |
Para concluir podemos citar lo siguiente
- REST significa REpresentational State Transfer
- Fue desarrollado por Roy Thomas Fielding quien tambien desarrollo el HTTP
- La principal meta es hacer que los WS (Web services) más efectivos
- Define los WS con los conceptos que ya estan presentes en HTTP (GET, PUT, POST, DELETE)
- No define un formato estándar de intercambio de mensajes
- Los recursos puede ser representados por XML, HTL, JSON, entre otros pero es ms utilizado JSON .
- Puede ser accedido por medio de una URI (Uniform Resorce Identifier)
Existe mucha literatura en internet sobre que es un RESTful y como trabaja, esto es simplemente un resumen e introducción para lo que sigue.
Supongamos que necesitamos operar con un listado de personas, sobre las cuales podemos realizar las siguientes operaciones
Operación | Método | Path |
Obtener el listado de personas | GET | /personas |
Obtener una persona por id | GET | /personas/{id} |
Agregar una persona | POST | /personas |
Modificar una persona | PUT | /personas/{id} |
Borrar una persona | DELETE | /personas/{id} |
En posteriores entradas se implementara esta api con distintos lenguajes.
Pingback: API RESTful en Go – Otro Del Montón
Pingback: API RESTful con NodeJS – Otro Del Montón