跳转到内容

HTTP

messaging-http 是一个由答案文件驱动、从 build-answer.json 生成的消息提供商。当系统通过普通 HTTP 而不是具名聊天平台与数字工作者通信时,它很有用。

当前支持:

  • 将入站 HTTP POST JSON 请求映射为规范化的提供商事件
  • 可选的入站 bearer token 或 API key header 校验
  • 捕获指定的请求 header 和 query 参数
  • 从消息 payload 构建出站 HTTP GETPOST 请求描述
  • 使用 {payload.case_id} 等 payload 值进行 URL 模板替换
  1. 添加提供商 pack

    使用 gtc wizard 选择 messaging-http,或从消息提供商目录将该 pack 添加到 bundle。

  2. 配置路由和认证

    使用已安装 pack 生成的 setup answers。典型配置包括路由/公共 URL 信息、可选认证、捕获的 header 以及出站请求设置。

  3. 运行 setup

    Terminal window
    gtc setup ./my-bundle
  4. 启动 runtime

    Terminal window
    gtc start ./my-bundle

入站 HTTP 需要一个带 JSON 对象 body 的 POST 请求。提供商会将其映射为如下事件:

{
"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"
}
}

当存在时,幂等键会从 Idempotency-KeyX-Request-Idpayload.idempotency_keypayload.id 获取。

出站消息会转换为 HTTP 请求描述。例如,使用以下配置:

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

消息 payload { "case_id": "C123", "status": "open" } 会生成:

{
"method": "POST",
"url": "https://example.test/cases/C123",
"headers": {
"content-type": "application/json"
},
"body": "{\"case_id\":\"C123\",\"status\":\"open\"}",
"timeout_ms": 5000
}
方向协议和端口用途
入站HTTPS 443 到 Greentic外部系统发送 webhook 风格的 JSON 请求
入站,本地开发本地 runtime/tester 端口上的 HTTPTLS/隧道终止前的本地测试
出站HTTP 或 HTTPS 到已配置 endpoint提供商构建的出站请求

使用本地 tester:

Terminal window
./scripts/test_http.sh

tester 页面为入站映射和出站请求生成提供独立按钮,并显示清晰的通过/失败状态。