API REST

De Seobility Wiki
Saltar a: navegación, buscar

¿Qué es una API REST?

API REST
Imagen: API REST- Autor: Seobility - Licencia: CC BY-SA 4.0

En primer lugar, tenemos a una API (Interfaz de Programación de Aplicación o Application Programming Interface en inglés). Básicamente, es un tipo de software que permite a dos aplicaciones comunicarse una con otra, a través de Internet y otros dispositivos. Por ejemplo, cada vez que alguien ingresa en una app como Facebook o revisa el clima en un smartphone, se utiliza una API.

Por otro lado, tenemos la abreviación REST que significa Transferencia de Estado Representacional (Representational State Transfer), refiriéndose a un estilo de arquitectura de software que se basa en los 6 principios del REST. Estos describen cómo se definen y se abordan los recursos en red en la web, por ejemplo, en una nube.

Estos principios fueron descritos por Roy Fielding en su disertación: “Estilos Arquitectónicos y el Diseño de las Arquitecturas de Software Basadas en la Red” en el 2000. Allí propone el principio de “statelessness”, es decir, un tipo de arquitectura que mantiene una sola función, siendo esencial para una API REST, pues establece que cada mensaje REST contiene toda la información necesaria para su comprensión. Cabe destacar que REST, entonces, no es un lenguaje de programación o una estructura básica y tampoco es un programa que pueda ser ejecutado.

En este sentido, una API RESTful (como se le conoce a la API diseñada bajo la arquitectura web REST) se caracteriza por funcionar con peticiones HTTP del tipo: GET, POST, PUT y DELETE definidas en la | RFC 2616. Por lo tanto, no necesita convenciones de protocolo para que el cliente y el servidor puedan comunicarse entre sí, por medio de la API REST.

Con este en mente, vamos a ver los 4 métodos o peticiones que, usualmente, son suficientes para cubrir la mayoría de sus usos:

  • GET: se utiliza para consultar los recursos en la API RESTful.
  • POST: se emplea para actualizar o cambiar el estado de un recurso.
  • PUT: se usa para crear nuevos recursos o reemplazar el contenido existente.
  • DELETE: sencillamente, elimina un recurso.

Origen y evolución de la API REST

El estilo de arquitectura REST representa una alternativa a otros métodos como el SOAP (Simple Object Access Protocol o Protocolo Simple de Acceso a Objetos) y el WSDL (Lenguaje de Descripción de Servicios Web) y fue desarrollada a finales de la década de 1990, cambiando fundamentalmente el panorama de las API.

Para entonces, las primeras compañías en emplear una API REST fueron eBay y Amazon, donde solo una selección de asociadas/os tenían acceso a la API REST fácil de utilizar y bien documentada de la plataforma, por lo que no solo se podía acceder al marketplace de eBay directamente desde el sitio web principal, sino que también se podía ingresar desde otros portales asociados a la API de eBay.

Tiempo después, Flickr lanzó su API REST en 2004, justo a tiempo para el auge de las redes sociales y los blogs en Internet, asentando el camino del social sharing al que Facebook y Twitter se unieron después.

Por su parte, en 2006, la API REST de Amazon ayudó en el desarrollo del almacenamiento en nube, el cual es ampliamente utilizado hoy en día. A partir de esta API RESTful se permitió a las usuarias/os conectarse a la nube e interactuar con sus servicios, tanto así es que, hoy en día, muchos sitios web acceden y dependen de ella, considerándose como la columna vertebral de la web.

Los 6 principios del REST

Arquitectura cliente/servidor

El principio detrás de la arquitectura cliente/servidor es la separación de los problemas. Es decir, al dividir la interfaz de uso del almacenamiento de datos, se puede mejorar la portabilidad de esa interfaz a través de múltiples plataformas, lo que además tiene como ventaja que los diferentes componentes pueden ser desarrollados independientemente el uno del otro.

Statelessness o sin estado

Este término se refiere a que la comunicación entre el cliente y el servidor siempre contiene toda la información necesaria para ejecutar la petición. Por ende, no hay estado de sesión en el servidor y se mantiene totalmente del lado del cliente, por lo que si el acceso a un recurso requiere de autenticación, el cliente debe autenticarse tras cada petición.

Caching

El cliente, el servidor y cualquier componente intermediario puede almacenar en caché todos los recursos para mejorar el rendimiento. Para esto, la información se puede clasificar como almacenable y no almacenable según la prioridad.

Interfaz uniforme

Todos los componentes de una API RESTful deben seguir las mismas reglas para comunicarse entre otras. Esto además facilita el entendimiento de las interacciones entre diversos componentes de un sistema.

Sistema en capas

Los componentes no se pueden ver más allá del nivel inmediato en el que interactúan. Quiere decir que los clientes que se conectan a un componente intermediario como, por ejemplo, un proxy no conocen lo que hay detrás. Por lo tanto, los componentes se pueden intercambiar fácilmente o ampliarse independientemente de cada uno.

Código on-demand

Esto implica que se puede descargar un código adicional para ampliar las funcionalidades del cliente, sin embargo, esto es opcional, ya que algunos clientes no pueden descargar ni ejecutar este código.

Ventajas del REST para el desarrollo de una API

La separación completa de la interfaz de uso y del almacenamiento de datos del servidor, ofrece un par de ventajas para el desarrollo de una API.

Por ejemplo, como se menciona antes, mejora la portabilidad de la interfaz para usar en otros tipos de plataformas, aumenta la escalabilidad de proyecto y permite que diferentes componentes puedan desarrollarse de manera independiente.

Los/las desarrolladoras/es pueden migrar con facilidad a otros servidores o hacer cambios en su base de datos, siempre que esta información se envíe correctamente desde la solicitud. Por lo tanto, la separación mejora la flexibilidad general en el desarrollo de cualquier proyecto.

Además, una API REST siempre es independiente del tipo de plataforma o lenguaje utilizado, ya que se adapta al tipo de sintaxis o plataforma que se emplee, lo cual proporciona más libertad al cambiar o probar nuevos entornos.

Por ejemplo, se puede utilizar PHP, Java, Python o servidores Node.js con una API REST, teniendo en cuenta que únicamente, las respuestas a las solicitudes son las que deben estar en el lenguaje utilizado para el intercambio de información: XML o JSON.

No obstante, existe una desventaja de las API REST y es la falta de estandarización en general que puede dar lugar a malentendidos.

Ampliar conocimientos

Sobre las autoras y autores:
Seobility S
El equipo de Seobility Wiki está formado por expertas y expertos SEO, profesionales del marketing digital y especialistas en negocios con experiencia en SEO, marketing online y desarrollo web. Todos nuestros artículos pasan por un proceso editorial de varios niveles para proporcionarte la mejor calidad posible e información relevante y de utilidad. Conoce a la gente que hay detrás de la Wiki de Seobility.