intive Argentina Blog

¿Qué es REST?

REST -REpresentational State Transfer- es un tipo de arquitectura de desarrollo web que se apoya 100% en el estándar HTTP. Entre sus ventajas, esta arquitectura nos permite crear servicios y aplicaciones que pueden ser utilizados por cualquier dispositivo o cliente que entienda de HTTP, lo cual la hace increíblemente más simple que otras alternativas que se han venido utilizando hasta ahora, como SOAP o XML-RPC.

Implementar soluciones con servicios REST involucra varios aspectos, los cuales enumeramos a continuación:

1. Uso correcto de URLs: Expone las URLs con forma de directorios y los nombra
como recursos. Además de permitir identificar de forma única el recurso, nos permite localizarlo para acceder a él o compartir su ubicación. El recurso resulta ser la información a la que queremos acceder, modificar o borrar, independientemente de su formato. Una URL se estructura de la siguiente forma:

2. Uso correcto de HTTP: Utiliza los métodos HTTP de manera explícita.

  • GET para consultar y leer recursos
  • POST para crear recursos
  • PUT para editar recursos
  • DELETE para eliminar recursos
  • PATCH para editar partes concretas de un recurso

Por lo general empleamos únicamente los métodos GET y POST para realizar todas estas acciones. Si                 trabajáramos con REST, el uso de estos dos podría traernos problemas a la hora de nombrar nuestros recursos,       obligándonos a tener que poner verbos en las URLs para identificar la acción asociada al mismo.

3. Implementación de Hypermedia: REST utiliza Hypermedia para añadir información extra al recurso sobre su conexión a otros recursos relacionados con él. Para ello, se utilizan las cabeceras Accept y Content-Type. Por ejemplo, si el servicio produjera o recibiera información en formato JSON, se podría indicar con application/json (parte del protocolo entre cliente y servidor) para que quien lo consuma sepa cómo tratar la información por sobre otro formato. El servicio web, por lo tanto, como implementa Hypermedia, le devuelve la información de recurso y la de Hypermedia que puede utilizar el cliente para que éste aproveche esa información adicional.

4. No es necesario guardar estado: En el servidor está toda la información que se requiere para mostrar la información requerida o solicitada debe estar en la consulta por parte del cliente.

A modo de complemento, para entender mejor las cosas, pueden encontrar en el siguiente repositorio GIT un código de ejemplo de un skeleton en java con una implementación sencilla de servicios REST.

Para configurar o testear el skeleton, pueden ingresar aquí.

Espero que, tras la lectura de este artículo, puedan incorporar la arquitectura REST a sus trabajos y disfrutar de sus beneficios.

Federico Paciente

Desarrolla aplicaciones Java J2EE. Es parte de intive – FDV desde abril de 2015. Es analista de sistemas, experimentado en aplicaciones web corporativas sobre plataformas Java. También trabaja con Angular JS y PHP.

 

Deja un comentario