¿Qué es REST? - AWS AppSync GraphQL

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

¿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ñar APIs utilizando varias arquitecturas diferentes. APIs las que siguen el estilo arquitectónico REST se denominan REST APIs. Los servicios web que implementan la arquitectura REST se denominan servicios RESTful web. El término RESTful API generalmente se refiere a la RESTful web APIs. Sin embargo, puede utilizar los términos API REST y RESTful API indistintamente.

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 RESTful servicio web. 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:

  1. Las solicitudes deben identificar recursos. Lo hacen mediante un identificador de recursos uniforme.

  2. 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.

  3. 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.

  4. 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 RESTful web para que se ejecute en varios servidores con varios niveles, como seguridad, aplicaciones y lógica empresarial, y trabajar juntos para cumplir con las solicitudes de los clientes. Estas capas permanecen invisibles para el cliente.

Capacidad de almacenamiento en caché

RESTful Los servicios web admiten el almacenamiento en caché, que es el proceso de almacenar algunas 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 memoria caché. RESTful Los servicios web 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

RESTful La API es una interfaz que utilizan dos sistemas informáticos 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 recibos de pago mensuales, su sistema de cuentas interno debe compartir datos con el sistema bancario de su cliente para automatizar la facturación y comunicarse con una aplicación interna de registro de horas. RESTful APIs respaldan este intercambio de información porque siguen estándares de comunicación de software seguros, confiables y eficientes.

¿Cómo RESTful APIs funcionan?

La función básica de una RESTful API 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:

  1. 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.

  2. El servidor autentica al cliente y confirma que este tiene derecho a realizar la solicitud.

  3. El servidor recibe la solicitud y la procesa internamente.

  4. 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.