La arquitectura REST se encuentra en un estado de crecimiento favorable en Internet. Esta arquitectura se puede encontrar en muchos ámbitos de la web, mayormente como API para desarrolladores. Sitios web como Amazon, Facebook o MEGA ofrecen a los desarrolladores estas APIs basadas, casi en su totalidad, en REST. También se suele utilizar para aplicaciones móviles, redes sociales y otras aplicaciones de gestión.

arquitectura rest gausswebapp imagen

Nosotros no íbamos a ser menos, por lo que le concedemos un espacio en nuestro blog para realizarle una pequeña presentación.

¿Qué es la arquitectura REST?

REST es una arquitectura de desarrollo web que puede ser utilizada en cualquier cliente HTTP. Además, es mucho más simple que otras arquitecturas ya existentes, como pueden ser XML-RPC o SOAP. Esta simplicidad se consigue porque emplea una interfaz web que usa hipermedios para la representación y transición de la información.

Esta arquitectura fue definida por Roy Fielding en el año 2000, que además es unos de los principales artífices de la especificación del protocolo HTTP.

La principal ventaja de esta arquitectura es que ha aportado a la web una mayor escalabilidad, es decir, dan soporte a un mayor número de componentes y las interacciones entre ellos. Esta ventaja es gracias a una serie de características que presenta la arquitectura REST:

  • Es un protocolo sin estado, debido a que no se guarda la información en el servidor. Es decir, toda la información será enviada por el cliente en cada mensaje HTTP, consiguiendo un ahorro en variables de sesión y almacenamiento interno del servidor.

  • Presenta un conjunto de operaciones bien definidas, siendo las más importantes GET, POST, PUT y DELETE, que se emplea en todos los recursos.

  • Utiliza URIs únicas siguiendo una sintaxis universal. Estas URIs deben seguir unas pautas que veremos más adelante.

  • Emplea hipermedios para representar la información, que suelen ser HTML, XML o JSON.

Recursos y URIs

Uno de los elementos más importantes de la arquitectura REST son los recursos. Estos elementos de información son identificados por una URI (Identificador Único del Recurso), que deben presentar las siguientes características:

  • Las URI recibirán nombres que no deben implicar una acción, es decir, se debe evitar colocar verbos en ellas. Esto se debe a que se pone énfasis a los sustantivos:

    
    http://...../fotos/12/borrar INCORRECTO
    http://...../fotos/12 CORRECTO
    

  • Deben ser únicas, no debemos tener más de una URI para identificar un mismo recurso.

  • Deben ser independiente de formato, es decir, no debe representar ninguna extensión:

    
    http://...../fotos/12.jpg INCORRECTO
    http://...../fotos/12 CORRECTO
    

  • Deben mantener una jerarquía lógica. La jerarquía es el criterio por el que se ordena los elementos. En el siguiente ejemplo se aprecia la diferencia:

    
    http://...../fotos/12/usuario/231 INCORRECTO
    http://...../usuario/231/fotos/12 CORRECTO
    

    En el caso incorrecto se podría leer como «foto 12 tiene usuario 231», situación poco lógica. En cambio en el caso correcto, podríamos leerlo como «usuario 231 tiene foto 12», algo que suena más lógico.

  • Los filtrados de información de un recurso no se hacen en la URI.

    
    http://...../fotos/fecha/octubre INCORRECTO
    http://...../fotos?fecha=octubre CORRECTO
    

Métodos

Hasta ahora, cuando hablamos de la arquitectura REST sabemos que se basa en recursos, donde cada uno de ellos está identificado de forma única.

Para poder interactuar con estos recursos utilizaremos, principalmente, los siguientes métodos HTML:

  • GET: se utiliza para acceder a los distintos recursos.

  • POST: se utiliza para realizar acciones de creación de nuevos recursos.

  • PUT: se utiliza para modificar los recursos existentes.

  • DELETE: se utiliza para eliminar los recursos.

Para todo desarrollador web que quiera iniciarse con la arquitectura REST, el protocolo HTTP es un conocimiento imprescindible que debe adquirir para poder conocer los métodos y códigos de estado definidos.

Conclusión

Como conclusión añadir que si has leído este artículo de arriba a abajo tendrás una pequeña idea de qué es la arquitectura REST, en que se basa y cuáles son sus principales fundamentos, que es el objetivo que perseguía este artículo.

¿Qué opinas de la arquitectura REST?