Descripción general de las API de WebSocket en API Gateway
En API Gateway puede crear una API de WebSocket como un frontend con estado para un servicio de AWS (como Lambda o DynamoDB) o para un punto de enlace HTTP. La API de WebSocket invoca al backend en función del contenido de los mensajes que recibe de las aplicaciones cliente.
A diferencia de una API de REST, que recibe las solicitudes y responde a ellas, una API de WebSocket admite la comunicación bidireccional entre las aplicaciones cliente y el backend. El backend puede enviar mensajes de devolución de llamada a los clientes conectados.
En la API de WebSocket, los mensajes JSON entrantes se dirigen a las integraciones de backend en función de las rutas que se hayan configurado. (Los mensajes que no son de JSON se dirigen a la ruta $default
que se configure).
Una ruta incluye una clave de ruta, que es el valor que se espera una vez que se evalúa una expresión de selección de ruta. routeSelectionExpression
es un atributo definido en el nivel de API. Especifica una propiedad JSON cuya presencia se espera en la carga del mensaje. Para obtener más información sobre las expresiones de selección de ruta, consulte Expresiones de selección de ruta.
Por ejemplo, si los mensajes JSON contienen una propiedad action
y desea realizar diferentes acciones en función de esta propiedad, la expresión de selección de ruta podría ser ${request.body.action}
. La tabla de enrutamiento especificaría la acción que se debe realizar comparando el valor de la propiedad action
con los valores de clave de ruta personalizados que se han definido en la tabla.
Uso de rutas para una API de WebSocket
Existen tres rutas predefinidas que se pueden utilizar: $connect
, $disconnect
y $default
. Además, es posible crear rutas personalizadas.
-
API Gateway llama a la ruta
$connect
al iniciarse una conexión persistente entre el cliente y una API de WebSocket. -
API Gateway llama a la ruta
$disconnect
cuando el cliente o el servidor se desconecta de la API. -
API Gateway llama a una ruta personalizada después de evaluar la expresión de selección de ruta con respecto al mensaje si se encuentra una ruta coincidente; esta coincidencia determina qué integración se invoca.
-
API Gateway llama a la ruta
$default
si la expresión de selección de ruta no puede evaluarse con respecto al mensaje o no se encuentra ninguna ruta coincidente.
Para obtener más información sobre las rutas $connect
y $disconnect
, consulte Administración de usuarios conectados y aplicaciones cliente: rutas $connect y $disconnect.
Para obtener más información sobre la ruta $default
y las rutas personalizadas, consulte Invocación de la integración de backend con la ruta $default y las rutas personalizadas en API Gateway.
Envío de datos a las aplicaciones cliente conectadas
Los servicios de backend pueden enviar datos a las aplicaciones cliente conectadas. Puede enviar datos si hace lo siguiente:
-
Use una integración puede enviar una respuesta, que se devuelve al cliente mediante una respuesta de ruta que usted haya definido.
-
Puede utilizar la API
@connections
para enviar una solicitud POST. Para obtener más información, consulte Uso de comandos de @connections en el servicio de backend.