Casos de uso de API Gateway - Amazon API Gateway

Casos de uso de API Gateway

Uso de API Gateway para crear API REST

Una API REST de API Gateway está formada por recursos y métodos. Un recurso es una entidad lógica a la que una aplicación puede acceder a través de una ruta de recursos. Un método se corresponde con una solicitud de la API de REST enviada por el usuario de la API y la respuesta devuelta al usuario.

Por ejemplo, /incomes podría ser la ruta de un recurso que representa los ingresos del usuario de la aplicación. Un recurso puede tener una o varias operaciones, las cuales definen los verbos HTTP correspondientes, por ejemplo, GET, POST PUT, PATCH y DELETE. Una combinación de una ruta de recurso y una operación identifica un método de la API. Por ejemplo, un método POST /incomes podría añadir una ganancia devengada por el intermediario y un método GET /expenses podría consultar los gastos en los que ha incurrido el intermediario.

La aplicación no necesita saber dónde se almacenan y de dónde se obtienen los datos solicitados en el backend. En las API REST de API Gateway, el frontend se encapsula mediante solicitudes de métodos y respuestas de métodos. La API se conecta con el backend por medio de solicitudes de integración y respuestas de integración.

Por ejemplo, con DynamoDB como backend, el desarrollador de la API configura la solicitud de integración para reenviar la solicitud del método de entrada al backend elegido. La configuración incluye las especificaciones de acción de DynamoDB adecuadas y los roles y políticas de IAM necesarios, así como la transformación de los datos de entrada correcta. El backend devuelve el resultado a API Gateway como una respuesta de integración.

Para dirigir la respuesta de integración a una respuesta de método adecuada (de un determinado código de estado HTTP) al cliente, puede configurar la respuesta de integración para que mapee los parámetros de respuesta necesarios desde la integración del método. A continuación, si fuera necesario, convierta el formato de los datos de salida del backend al del frontend. API Gateway le permite definir un esquema o modelo de carga para facilitar la configuración de la plantilla de mapeo de cuerpo.

API Gateway proporciona funcionalidad de administración de la API REST, como a siguiente:

  • Soporte para generar SDK y crear la documentación de API mediante extensiones de OpenAPI de API Gateway

  • Limitación controlada de solicitudes HTTP

Uso de API Gateway para crear API HTTP

Las API HTTP le permiten crear API de RESTful con menor latencia y menor costo que las API de REST.

Puede utilizar las API HTTP para enviar solicitudes a funciones de AWS Lambda o a cualquier punto de enlace HTTP públicamente direccionable.

Por ejemplo, puede crear una API HTTP que se integre con una función de Lambda en el backend. Cuando un cliente llama a la API, API Gateway envía la solicitud a la función de Lambda y devuelve la respuesta de la función al cliente.

Las API HTTP son compatibles con la autorización de OpenID Connect y OAuth 2.0. Vienen con soporte integrado para el uso compartido de recursos entre orígenes (CORS) y las implementaciones automáticas.

Para obtener más información, consulte Elección entre API de REST y API HTTP.

Uso de API Gateway para crear API de WebSocket

En una API de WebSocket, el cliente y el servidor pueden enviarse mensajes entre sí en cualquier momento. Los servidores de backend pueden enviar fácilmente datos a los usuarios y dispositivos conectados, lo que evita la necesidad de implementar complejos mecanismos de sondeo.

Por ejemplo, podría crear una aplicación sin servidor mediante una API de WebSocket de API Gateway y AWS Lambda para enviar y recibir mensajes entre usuarios individuales o grupos de usuarios de una sala de conversación. También puede invocar servicios de backend como por ejemplo AWS Lambda, Amazon Kinesis o un punto de enlace HTTP en función del contenido de los mensajes.

Puede utilizar la API de WebSocket de API Gateway para crear aplicaciones seguras de comunicación en tiempo real sin tener que aprovisionar ni administrar servidores para administrar las conexiones o los intercambios de datos a gran escala. Los casos de uso focalizados incluyen aplicaciones en tiempo real, como la siguiente:

  • Aplicaciones de chat

  • Paneles en tiempo real como los de cotizaciones bursátiles

  • Alertas y notificaciones en tiempo real

API Gateway proporciona funcionalidad de administración de la API de WebSocket, como la siguiente:

  • Monitoreo y limitación controlada de las conexiones y los mensajes

  • Uso de AWS X-Ray para rastrear los mensajes que se transfieren a través de las API a los servicios de backend

  • Integración sencilla con puntos de enlace HTTP/HTTPS

¿Quiénes utilizan API Gateway?

Existen dos tipos de desarrolladores que utilizan API Gateway: los desarrolladores de API y los desarrolladores de aplicaciones.

Un desarrollador de API crea e implementa una API para habilitar la funcionalidad necesaria en API Gateway. El desarrollador de API debe ser un usuario en la cuenta de AWS que posee la API.

Un desarrollador de aplicaciones diseña una aplicación funcional que llama a los servicios de AWS mediante la invocación de una API de WebSocket o REST creada por un desarrollador de API en API Gateway.

El desarrollador de aplicaciones es el cliente del desarrollador de API. El desarrollador de aplicaciones no necesita tener una cuenta de AWS, siempre que la API no requiera permisos de IAM, o bien admita la autorización de usuarios a través proveedores de identidad federada de terceros admitidos por la Federación de identidades de grupos de usuarios de Amazon Cognito. Los proveedores de identidad incluyen a Amazon, el grupo de usuarios de Amazon Cognito, Facebook y Google.

Creación y administración de una API de API Gateway

Para crear, configurar e implementar una API, un desarrollador de API trabaja con el componente del servicio de API Gateway para administración de la API, denominado apigateway.

Como desarrollador de API, puede crear y administrar una API mediante la consola de API Gateway tal y como se describe en Introducción a la API de API Gateway o llamando a la Referencias de API. Existen varias maneras de llamar a esta API. Incluyen el uso de AWS Command Line Interface (AWS CLI), o mediante un SDK de AWS. Además, puede habilitar la creación de la API con Plantillas de AWS CloudFormation o, en el caso de las API REST y HTTP, con Trabajar con extensiones de API Gateway para OpenAPI.

Para obtener una lista de las regiones en las que API Gateway está disponible, así como los puntos de enlace del servicio de control asociados, consulte Cuotas y puntos de enlace de Amazon API Gateway.

Llamadas a un API de API Gateway

Un desarrollador de aplicaciones trabaja con el componente de servicio de API Gateway para ejecución de la API, denominado execute-api, para invocar una API que se ha creado o implementado en API Gateway. La API creada expone las entidades de programación subyacentes. Existen varias maneras de llamar a dicha API. Para obtener más información, consulte Invocación de una API REST en Amazon API Gateway y Invocación de una API de WebSocket.