Flujo de trabajo de extremo a extremo · Guías
Webhooks y integración basada en eventos
Configuración de conexión web saliente, un receptor seguro, protección de duplicados y recuperación de eventos perdidos a través de API.
Los webhooks reducen la latencia de cambio pero no reemplazan la fuente de la verdad.
Integras y servicios de backend basados en eventos01
Definición de eventos y propiedad
Comience con un evento de negocio, como un pedido nuevo o cambiado, un cambio de stock o un cambio en el precio. Defina la acción del propietario de datos y el receptor para cada evento.
Mantenga la carga útil original de la conexión web separada de su modelo normalizado durante un período limitado.
Un nuevo campo opcional no debe romper el análisis de una estructura de eventos conocida.
Puntos finales API relacionados
POST/api/webhook/Crear una conexión webGET/api/webhook/Lista de configuraciones de conexión web
02
Construir un receptor HTTP seguro
- 1
Constrangir la solicitud
Acepta sólo los métodos y tipos de contenido requeridos, imponga un límite de tamaño corporal y utilice un corto tiempo de lectura.
- 2
Verificar la fuente
Utilice un secreto en una URL no enumerada o encabezado configurable y añadir API-gateway filtrado. No confíe en el usuario-agente solo.
- 3
Permanezca el evento
Almacenar la carga útil y la clave de deduplicación en una transacción, luego devolver una respuesta exitosa rápidamente.
- 4
Proceso sincronizado
Llame al ERP, WMS y otros sistemas desde una cola en lugar de la solicitud de HTTP entrante.
Una respuesta lenta aumenta el tiempo de espera y el riesgo de entrega duplicada.
app.post('/selsup/events/secret-path', async (request, response) => {
const eventKey = createStableEventKey(request.body);
const inserted = await inbox.insertOnce(eventKey, request.body);
response.sendStatus(inserted ? 202 : 200);
});
03
Duplicados, ordenados y deduplicados
Trate la entrega de duplicados como normal. Utilice un identificador de evento estable cuando esté presente; de lo contrario, deriva una clave del tipo de entidad, el id de la entidad y el tiempo de modificación.
Los eventos pueden llegar fuera de orden. Comparar modificadoDate antes de escribir o recargar la entidad actual a través de API.
Regresa el estado de éxito de un evento ya procesado. De lo contrario, el remitente puede continuar intentando el trabajo terminado.
Una tabla de eventos entrantes con clave de evento única, estado y número de intentos simplifica la deduplicación, reproducción y auditoría.
04
Recuperación de los eventos perdidos
Ejecutar la reconciliación periódica API incluso cuando los webhooks están sanos. Utilice modificadoDate con superposición para pedidos y un almacén o cambio de SKU para el inventario.
Después de la falta de tiempo del receptor, agota la bandeja de entrada y solicita cambios para la ventana de apagón completa. La misma lógica de deduplicación debe combinar los resultados webhook y API.
Puntos finales API relacionados
GET/api/order/findRecuperación de cambios en el ordenGET/api/wms/stock/findConciliar los cambios de existencias
05
Gestionar el ciclo de vida de la conexión web
Exponer la URL activa, el tipo de evento, el último recibo exitoso y el último error en su integración. Esto permite el diagnóstico sin acceso directo al registro del servidor.
Antes de reemplazar o eliminar una URL, compruebe si el nuevo receptor acepta eventos.
Puntos finales API relacionados
GET/api/webhook/Revisar los webhooks configuradosDELETE/api/webhook/{webhookId}Eliminar un conector web