Configuración de un respuestas de integración de API de WebSocket en API Gateway - Amazon API Gateway

Configuración de un respuestas de integración de API de WebSocket en API Gateway

Información general sobre las respuestas de integración

La respuesta de integración de API Gateway es una manera de modelar y manipular la respuesta desde un servicio de backend. Existen algunas diferencias en la configuración de una API de REST frente a la de una respuesta de integración de API de WebSocket, pero conceptualmente el comportamiento es el mismo.

Las rutas de WebSocket se pueden configurar para la comunicación unidireccional o bidireccional.

  • Cuando una ruta se configura para la comunicación bidireccional, una respuesta de integración le permite configurar transformaciones de la carga del mensaje que se devuelve, de forma similar a las respuestas de integración para las API de REST.

  • Si una ruta se configura para la comunicación unidireccional, independientemente de la configuración de respuesta de integración, no se devolverá ninguna respuesta a través del canal de WebSocket una vez procesado el mensaje.

API Gateway no pasará la respuesta del backend a través de la respuesta de la ruta, a menos configure una respuesta de ruta. Para obtener más información sobre cómo configurar una respuesta de ruta, consulte Configuración de respuestas de ruta para una API de WebSocket en API Gateway.

Respuestas de integración para la comunicación bidireccional

Las integraciones se pueden dividir en integraciones de proxy e integraciones que no son de proxy.

importante

En las integraciones de proxy, API Gateway pasa automáticamente la salida del backend al intermediario como la carga completa. No hay ninguna respuesta de integración.

En las integraciones que no son de proxy, es necesario configurar al menos una respuesta de integración:

  • Lo ideal sería que una de las respuestas de integración actuase como método catch-all cuando no se puede realizar ninguna elección explícita. Este caso predeterminado se representa mediante la configuración de la clave de respuesta de integración $default.

  • En el resto de los casos, la clave de respuesta de integración funciona como una expresión regular. Debe seguir el formato "/expression/".

Para las integraciones HTTP que no sean de proxy:

  • API Gateway intentará emparejar el código de estado HTTP de la respuesta del backend. La clave de respuesta de integración funcionará como una expresión regular en este caso. Si no se encuentra una coincidencia, se elige $default como respuesta de integración.

  • La expresión de selección de plantillas, tal y como se describe anteriormente, funciona de forma idéntica. Por ejemplo:

    • /2\d\d/: recibe y transforma respuestas correctas

    • /4\d\d/: recibe y transforma errores de solicitud incorrecta

    • $default: recibe y transforma todas las respuestas inesperadas

Para obtener más información sobre las expresiones de selección de plantillas, consulte Expresiones de selección de plantilla.

Configuración de una respuesta de integración mediante la consola de API Gateway

Para configurar una respuesta de integración de ruta en una API de WebSocket mediante la consola de API Gateway:

  1. Inicie sesión en la consola de API Gateway en https://console.aws.amazon.com/apigateway.

  2. Elija la API de WebSocket y elija la ruta.

  3. Elija la pestaña Solicitud de integración y, a continuación, en la sección Configuración de solicitud de integración, elija Crear respuesta de integración.

  4. En Clave de respuesta, introduzca un valor que se encontrará en la clave de respuesta que aparece en el mensaje saliente tras evaluar la expresión de selección de respuesta. Por ejemplo, puede ingresar /4\d\d/ para recibir y transformar los errores de solicitudes erróneas o ingresar $default para recibir y transformar todas las respuestas que coincidan con la expresión de selección de plantillas.

  5. En Expresión de selección de plantillas, ingrese una expresión de selección para evaluar el mensaje saliente.

  6. Elija Crear respuesta.

  7. También puede definir una plantilla de mapeo para configurar las transformaciones de la carga útil de los mensajes devueltos. Seleccione Crear plantilla.

  8. Ingrese un nombre de clave. Si elige la expresión de selección de plantillas predeterminada, ingrese \$default.

  9. En Plantilla de respuesta, ingrese la plantilla de mapeo en el editor de código.

  10. Seleccione Crear plantilla.

  11. Elige Implementar API para implementar su API.

Use el siguiente comando wscat para conectarse a la API. Para obtener más información acerca de wscat, consulte Utilice wscat para conectarse y enviar mensajes a una API de WebSocket.

wscat -c wss://api-id.execute-api.us-east-2.amazonaws.com/test

Cuando llame a la ruta, la carga útil del mensaje devuelto debería regresar.

Configurar una respuesta de integración mediante la AWS CLI

Para configurar una respuesta de integración para una API de WebSocket mediante la AWS CLI llame al comando create-integration-response. El siguiente comando de la CLI muestra un ejemplo de creación de una respuesta de integración $default:

aws apigatewayv2 create-integration-response \ --api-id vaz7da96z6 \ --integration-id a1b2c3 \ --integration-response-key '$default'