Qué es una API REST y para qué se utiliza

A día de hoy, la mayoría de las empresas que desarrollan software utilizan API REST para crear y conectar diferentes servicios, ya que es un eficiente estándar para crear servicios web.

Qué es REST

REST es un estilo de arquitectura de software que se utiliza para describir cualquier interfaz entre diferentes sistemas que utilice HTTP para comunicarse. Este término significa REpresentational State Transfer (transferencia de estado representacional), lo que quiere decir que entre dos llamadas cualquiera, el servicio no guarda los datos. Por ejemplo, podemos autenticar a un usuario con su email y contraseña en una llamada, pero la siguiente que hagamos ya se habrá olvidado de la anterior petición de autenticación.

El cliente de una API REST puede ser una aplicación Android o iOS o un navegador web, pero también puede ser un Alexa, un Google Home o incluso una lavadora.

Las características que definen una arquitectura REST son las siguientes:

· El cliente y el servidor están débilmente acoplados, es decir, el cliente no necesita conocer los detalles de implementación del servidor y el servidor no se preocupa de cómo utiliza el cliente los datos.

· No hay estado, es decir, cada petición que recibe el servidor es independiente.

· Se utilizan los verbos HTTP GET, POST, PUT y DELETE para el acceso, creación, actualización y borrado de recursos.

· Las llamadas son cacheables para así evitar pedir varias veces un mismo recurso.

· La interfaz es uniforme, es decir, cada recurso del servicio REST debe tener una única dirección URI.

Ejemplos de API REST


En la imagen de arriba tenemos un mapa de Google Maps en el que tenemos diferentes puntos marcados: bocas de metro, calles, tiendas, restaurantes, bancos, cafeterías, etc. Cuando entramos a Google Maps lo que necesitamos saber por lo general es dónde está un sitio y cómo llegar hasta él. Para ello, Google utiliza una API REST que nosotros consumimos desde el navegador, desde el móvil o incluso desde el coche.

Al ir moviéndonos por el mapa, Google utiliza su API para ir mostrándonos nuevos sitios, los cuales podemos guardar, marcar como favoritos, puntuar y muchas acciones más. En este caso, un restaurante o cualquier punto del mapa sería un recurso con un identificador, y todas las acciones que realicemos sobre él serán a través de la API de Google.

Otro ejemplo podría ser el de Twitter: al abrirlo en el navegador o en el teléfono no es necesario recargar la página por completo para leer los nuevos tuits, sino que Twitter llama a su API para obtenerlos.

Pasa lo mismo cuando queremos marcar un tuit como favorito, hacer un retuit, o contestar a algún hilo. Todo se hace a través de una API que puede ser consumida desde cualquier dispositivo que sea capaz de utilizar HTTP.

Qué es una API REST

La palabra clave es Interface (interfaz), que es una capa de abstracción para que dos sistemas se comuniquen. En el ámbito web, podríamos decir que una API es un servicio backend que se utiliza para conectar dos aplicaciones.

Se definen una serie de métodos HTTP que pueden hacer lo que queramos: cambios en base de datos, autenticar usuarios, llamadas a otros procesos, etc. Tal y como he mencionado anteriormente, los verbos que se utilizan son: GET, POST, PUT y DELETE. Además, cualquier dispositivo que sepa cómo utilizar HTTP será capaz de consumir una API REST.

Una API REST es un backend capaz de contestar a las llamadas a una serie de URLs en formato JSON y que también es capaz de recibir JSON para gestionar la información que le enviemos.

La principal ventaja de las API REST es que podemos desarrollar una API en el backend y utilizarla en cualquier dispositivo, ahorrando así mucho tiempo de desarrollo. En el caso de Twitter, la misma API se consume desde Android, iOS y el navegador web.

Cómo desarrollar una API REST

No hay nada mejor que hacer algo uno mismo para entenderlo a la perfección, por lo que si quieres saber cómo desarrollar una API REST te recomiento que hagas el curso de creación de API REST con Node.js y MongoDB porque te va a ser de mucha ayuda.

En este curso aprenderás cómo definir una API REST, cómo utilizar Node.js para crearla, cómo guardar datos en MongoDB, cómo definir las rutas y por supuesto a consumir la API REST que crearás.