¿Qué es REST?
A un alto nivel, la transferencia de estado representacional (REST) es una arquitectura de software que impone condiciones sobre el funcionamiento de una API. REST se creó inicialmente como una guía para gestionar la comunicación en una red compleja como Internet. Una arquitectura basada en REST puede emplearse para apoyar una comunicación fiable y de alto rendimiento a escala. Puede implementarla y modificarla fácilmente, lo que aporta visibilidad y portabilidad multiplataforma a cualquier sistema de API.
Los desarrolladores de API pueden diseñarlas utilizando diversas arquitecturas distintas. Las API que siguen el estilo arquitectónico REST se denominan API de REST. Los servicios web que implementan la arquitectura REST se denominan servicios web RESTful. El término API de RESTful generalmente se refiere a las API web de RESTful. Sin embargo, los términos API de REST y API de RESTful pueden usarse de manera intercambiable.
A continuación, se indican algunos de los principios del estilo arquitectónico de REST:
Interfaz uniforme
La interfaz uniforme es fundamental para el diseño de cualquier servicio web RESTful. Indica que el servidor transfiere la información en un formato estándar. El recurso formateado se denomina representación en REST. Este formato puede ser diferente de la representación interna del recurso en la aplicación de servidor. Por ejemplo, el servidor puede almacenar datos como texto pero enviarlos en un formato de representación HTML.
La interfaz uniforme impone cuatro restricciones arquitectónicas:
-
Las solicitudes deben identificar recursos. Lo hacen mediante un identificador de recursos uniforme.
-
Los clientes tienen suficiente información en la representación del recurso para modificarlo o eliminarlo si así lo desean. El servidor cumple esta condición mediante el envío de metadatos que describen el recurso con más detalle.
-
Los clientes reciben información sobre cómo seguir procesando la representación. El servidor lo consigue enviando mensajes autodescriptivos que contienen metadatos sobre la mejor manera en la que el cliente puede utilizarlos.
-
Los clientes reciben información sobre todos los demás recursos relacionados que necesitan para completar una tarea. El servidor lo consigue enviando hipervínculos en la representación para que los clientes puedan descubrir más recursos de forma dinámica.
Ausencia de estado
En la arquitectura REST, la ausencia de estado se refiere a un método de comunicación en el que el servidor completa cada una de las solicitudes del cliente independientemente de las solicitudes anteriores. Los clientes pueden solicitar recursos en cualquier orden y cada solicitud no tiene estado o está aislada de las otras. Esta restricción de diseño de la API de REST implica que el servidor puede comprender y cumplir completamente la solicitud en todo momento.
Sistema por capas
En una arquitectura de sistema por capas, el cliente puede conectarse a otros intermediarios autorizados entre el cliente y el servidor y seguirá recibiendo respuestas del servidor. Los servidores también pueden transferir las solicitudes a otros servidores. Puede diseñar su servicio web RESTful para que se ejecute en varios servidores con varios niveles, como seguridad, aplicaciones y lógica empresarial y que funcionen juntos para cumplir con las solicitudes de los clientes. Estas capas permanecen invisibles para el cliente.
Capacidad de almacenamiento en caché
Los servicios web RESTful admiten el almacenamiento en caché, que es el proceso de almacenar respuestas en el cliente o en un intermediario para mejorar el tiempo de respuesta del servidor. Por ejemplo, supongamos que visita un sitio web que tiene imágenes comunes de encabezado y pie de página en todas las páginas. Cada vez que visita una nueva página web, el servidor debe volver a enviar las mismas imágenes. Para evitarlo, el cliente guarda en caché o almacena estas imágenes después de la primera respuesta y, a continuación, las utiliza directamente desde la caché. Los servicios web RESTful controlan el almacenamiento en caché mediante respuestas de API que se definen a sí mismas como almacenables en caché o no almacenables en caché.
¿Qué es una API RESTful?
La API RESTful es una interfaz que dos sistemas informáticos utilizan para intercambiar información de forma segura a través de Internet. La mayoría de las aplicaciones empresariales tienen que comunicarse con otras aplicaciones internas y de terceros para realizar diversas tareas. Por ejemplo, para generar nóminas mensuales, su sistema de cuentas interno debe compartir los datos con el sistema bancario del cliente para automatizar la facturación y comunicarse con una aplicación interna de plantillas de horarios. Las API RESTful respaldan este intercambio de información porque siguen estándares de comunicación de software seguros, fiables y eficientes.
¿Cómo funcionan las API RESTful?
La función básica de una API RESTful es la misma que la de navegar por Internet. El cliente contacta con el servidor mediante la API cuando necesita un recurso. Los desarrolladores de las API explican cómo el cliente debe usar la API de REST en la documentación de la API de la aplicación de servidor. Estos son los pasos generales para cualquier llamada a la API de REST:
-
El cliente envía una solicitud al servidor. El cliente sigue la documentación de la API para aplicar a la solicitud un formato que el servidor comprenda.
-
El servidor autentica al cliente y confirma que este tiene derecho a realizar la solicitud.
-
El servidor recibe la solicitud y la procesa internamente.
-
El servidor devuelve una respuesta al cliente. La respuesta contiene información que indica al cliente si la solicitud se ha realizado correctamente. La respuesta también incluye la información que el cliente haya solicitado.
Los detalles de solicitud y respuesta de la API de REST varían ligeramente según cómo diseñen la API los desarrolladores.