Ir al contenido

HTTP

messaging-http es un proveedor de mensajería controlado por respuestas y generado desde build-answer.json. Es útil cuando un sistema se comunica con un trabajador digital mediante HTTP directo en lugar de una plataforma de chat con nombre.

Actualmente admite:

  • Mapear solicitudes HTTP POST con JSON a eventos normalizados del proveedor
  • Comprobaciones opcionales de token bearer entrante o de cabecera de API key
  • Capturar cabeceras y parámetros de consulta seleccionados
  • Construir descripciones de solicitudes HTTP GET o POST salientes a partir de payloads de mensaje
  • Plantillas de URL con valores del payload como {payload.case_id}
  1. Agrega el pack del proveedor

    Selecciona messaging-http con gtc wizard o agrega el pack al bundle desde el catálogo de proveedores de mensajería.

  2. Configura rutas y autenticación

    Usa las respuestas de configuración generadas para tu pack instalado. La configuración típica incluye información de ruta/URL pública, autenticación opcional, cabeceras capturadas y ajustes de solicitudes salientes.

  3. Ejecuta setup

    Ventana de terminal
    gtc setup ./my-bundle
  4. Inicia el runtime

    Ventana de terminal
    gtc start ./my-bundle

HTTP entrante espera una solicitud POST con un cuerpo JSON de objeto. El proveedor la mapea a un evento con esta forma:

{
"provider": "messaging-http",
"direction": "inbound",
"kind": "http.webhook",
"idempotency_key": "req-1",
"source": {
"method": "POST",
"path": "/webhooks/acme",
"headers": {
"x-request-id": "req-1"
},
"query": {
"source": "test"
}
},
"payload": {
"case_id": "C123",
"event": "case.created"
}
}

La clave de idempotencia se toma de Idempotency-Key, X-Request-Id, payload.idempotency_key o payload.id cuando están presentes.

Los mensajes salientes se convierten en descripciones de solicitudes HTTP. Por ejemplo, con esta configuración:

{
"method": "POST",
"url": "https://example.test/cases/{payload.case_id}",
"headers": {
"content-type": "application/json"
},
"timeout_ms": 5000
}

Un payload de mensaje { "case_id": "C123", "status": "open" } produce:

{
"method": "POST",
"url": "https://example.test/cases/C123",
"headers": {
"content-type": "application/json"
},
"body": "{\"case_id\":\"C123\",\"status\":\"open\"}",
"timeout_ms": 5000
}
DirecciónProtocolo y puertoPropósito
EntranteHTTPS 443 hacia GreenticSistemas externos que envían solicitudes JSON estilo webhook
Entrante, desarrollo localHTTP en el puerto local del runtime/testerPruebas locales antes de la terminación TLS/túnel
SalienteHTTP o HTTPS hacia endpoints configuradosSolicitudes salientes construidas por el proveedor

Usa el tester local:

Ventana de terminal
./scripts/test_http.sh

La página de pruebas tiene botones separados para mapeo entrante y generación de solicitudes salientes, y muestra un estado claro de aprobado/error.