Introducción a REST

Para seguir este artículo, os aconsejamos pasar previamente por la Introducción a HTTP en el cual obtendremos las bases de lo que HTTP. El motivo por el que primeramente nos tenemos que familiarizar con este protocolo es que REST, se basa en HTTP.

¿Qué es REST?

Concepto introducido por Roy Fielding (el padre de la especificación HTTP) en su tesis escrita durante el año 2000.

REST = Representational State Transfer = Transferencia de Estado Representacional

Este concepto, marcó un antes y un después en el mundo del desarrollo de proyectos y servicios web, ya que ofrecía un nuevo enfoque. En la actualidad, REST se ha vuelto muy popular. Por ello, la mayoría de empresas desarrollan sus servicios mediante a APIs REST. En las que, como no, también se incluyen grandes compañías como Youtube, Twitter, Facebook… Debido a los beneficios que otorgan esta convención e desarrollo de servicios (los veremos más abajo).

Antes de nada, hay que a día que destacar que REST se planteó originalmente como una arquitectura de software. El concepto ha ido evolucionando, a día de hoy, REST más que una arquitectura de software, se podría definir como un conjunto de restricciones que nos permitirán desarrollar un conjunto de normas. Con estas convenciones, posteriormente, podremos desarrollar nuestra arquitectura de software para crear aplicaciones web basadas en el protocolo HTTP.

Por tanto, API REST, básicamente nos permite realizar peticiones vía HTTP básicas como GET (obtener), POST (acceso), PUT (añadir) y DELETE (eliminar), entre otras. Y usualmente, haremos que la respuesta que nos devuelva dicha petición HTTP sea un archivo JSON o XML, sin plantillas y con el beneficio que posteriormente lo podremos presentar la información en cualquier tecnología independientemente de la tecnología que usemos para realizar la API REST.

Podríamos decir que el requisito mínimo para que pueda decir que estamos trabajando con REST, sería el utilizar el “estilo arquitectónico” existentes podamos obtener datos o realizar operaciones mediante al protocolo HTTP.

¿Qué es una API?

API =  Application Programming Interface o Interfaz de Programación de Aplicaciones. Una API, es un un software que se comunica con otro software. Y por tanto, se produce una comunicación entre softwares, es decir, sin interacción humana.

Retorno de datos en una API REST

Los principales formatos en los que se suelen devolver los datos de una API REST son XML o JSON. Principalmente JSON, ya que es la evolución de XML y además es más rápido.

Beneficios de un API REST:

Algunos de los beneficios principales son:

  • Escalabilidad.
  • Rendimiento.
  • Seguridad.
  • Estandarización.
  • Fácil de usar.
  • Independencia sobre el lenguaje del lenguaje de implementación ya que las peticiones se responden usualmente mediante a JSON o XML.

Características a cumplir por un Rest según Roy Fielfing

Un desglose de las características que debe cumplir una API según Fielding (su creador) son:

  • Cliente-servidor: cada petición realizada mediante a HTTP contiene toda la información necesaria para que se pueda ejecutar correctamente, por tanto estamos afirmar que estamos hablando de que servidor y clientes están débilmente acoplados. Cada Ya que no necesitamos conocer detalles de su implementación ni del servidor para que ambos puedan interactuar entre sí.
  • Objetos manipulados mediante a una URI: Todos los objetos se manipularan mediante a su URI (sería lo equivalente al DNI para nosotros), el elemento que los identifica de forma única en un sistema REST. Con ello, podemos tener la seguridad de que seleccionamos el objeto que deseamos y una vez seleccionado, realizar la acción deseada. Por ejemplo: modificación, borrado, actualización, etc. de una forma más óptima. O incluso para compartir dicho objeto con un tercero.
  • Sin estado: no requiere sesiones para poder realizar una petición que se realiza en el servidor es independiente.
  • Cacheable: permite almacenar una petición en caché por si se repite la misma petición varias veces poder recuperar el recurso sin necedad
  • Interfaz uniforme: para la transferencia de datos en un sistema REST, se aplican acciones concretas analizando la petición que queremos hacer y los requisitos de que queremos cumplir.
  • Sistema de capas: el servidor puede estar organizado en un sistema de varias capas, también conocido como multicapa o arquitectura de jerarquía entre los componentes (como una cebolla). Cada capa, tendrá una misión dentro del sistema REST y la combinación de todas, dará como resultado el propio REST. Los principales beneficios que esta metodología generan son la escalabilidad, el rendimiento y la seguridad.

¿Que es REST FULL?

REST FULL, se utiliza para referirse a los servicios web que ejecutan la arquitectura REST.

Bueno, esto es todo por este artículo, en el próximo, veremos como crear una API REST. Saludos javer@s!

2 comentarios

  1. If some one wants expert view regarding blogging and site-building after that i
    propose him/her to pay a quick visit this blog, Keep up the fastidious work.

  2. Very nice post. I just stumbled upon your blog and wished to say that I’ve really enjoyed browsing
    your blog posts. After all I will be subscribing to
    your rss feed and I hope you write again soon!

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

La Ley 34/2002 nos obliga a avisarte de que usamos cookies propias y de terceros con objetivos estadísticos y de sesión y para mostrarte la 'publi' que nos da de comer. Tranquilo, este mensaje solo sale una vez. Más información

Java desde 0 comunica a los usuarios, a través de este aviso, que puede utilizar cookies cuando el usuario navega por las diferentes pantallas y páginas del sitio. Durante el uso de nuestra página Web usted acepta y autoriza expresamente el uso de cookies, de acuerdo con nuestra Política de Privacidad. Este sitio web utiliza las siguientes cookies propias: - Cookies de sesión, para garantizar que los usuarios que escriban comentarios en el blog sean humanos y no aplicaciones automatizadas. De esta forma se combate el spam. Este sitio web utiliza las siguientes cookies de terceros: - Google AdManager y AdSense: Utiliza cookies para mejorar la publicidad. Entre otros fines, suelen utilizarse para segmentarla según el contenido que sea relevante para los usuarios o su ubicación, mejorar los informes de rendimiento de las campañas y evitar mostrar anuncios que los usuarios ya hayan visto. Las cookies no contienen información personal identificable. Consulta cómo utiliza Google la información de sitios web o aplicaciones. y cómo bloquear determinados anuncios. - Google Analytics: Almacena cookies para poder elaborar estadísticas sobre el tráfico y volumen de visitas de esta web. Al utilizar este sitio web está consintiendo el tratamiento de información acerca de usted por Google. Por tanto, el ejercicio de cualquier derecho en este sentido deberá hacerlo comunicando directamente con Google. - Redes sociales: Cada red social utiliza sus propias cookies para que usted pueda pinchar en botones del tipo Me gusta o Compartir.

Cerrar