HTTP
messaging-http 是一个由答案文件驱动、从 build-answer.json 生成的消息提供商。当系统通过普通 HTTP 而不是具名聊天平台与数字工作者通信时,它很有用。
当前支持:
- 将入站 HTTP
POSTJSON 请求映射为规范化的提供商事件 - 可选的入站 bearer token 或 API key header 校验
- 捕获指定的请求 header 和 query 参数
- 从消息 payload 构建出站 HTTP
GET或POST请求描述 - 使用
{payload.case_id}等 payload 值进行 URL 模板替换
-
添加提供商 pack
使用
gtc wizard选择messaging-http,或从消息提供商目录将该 pack 添加到 bundle。 -
配置路由和认证
使用已安装 pack 生成的 setup answers。典型配置包括路由/公共 URL 信息、可选认证、捕获的 header 以及出站请求设置。
-
运行 setup
Terminal window gtc setup ./my-bundle -
启动 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-Key、X-Request-Id、payload.idempotency_key 或 payload.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 端口上的 HTTP | TLS/隧道终止前的本地测试 |
| 出站 | HTTP 或 HTTPS 到已配置 endpoint | 提供商构建的出站请求 |
使用本地 tester:
./scripts/test_http.shtester 页面为入站映射和出站请求生成提供独立按钮,并显示清晰的通过/失败状态。