4

我想编写一个可以使用原始数据响应 webhook 事件的规则集。事件可能来自如下 URL:

http://cs.kobj.net/blue/event/rest/echo/a163x85/?a163x85:kynetx_app_version=dev&body=hi%20there

我可以使用该send_directive()操作,但这会返回很多我不一定想要的 JSON:

// KNS Fri Apr  8 19:40:40 2011
{"directives":[{"options":{"body":"hi there"},"name":"echo","meta":{"rule_name":"echo","txn_id":"154CEDCC-6218-11E0-9E71-726A5E50CE3F","rid":"a163x85"}}]}

有没有办法只用原始数据而不是整个指令结构来响应?

4

1 回答 1

2

答案是使用Webhook Endpoint与 KNS 交互,而不是直接发出事件信号。

你会像这样表示你的事件:

http://webhooks.kynetxapps.net/h/a163x85.dev/echo?body=hi%20there

像这样的规则:

rule x {
  select when webhook echo
  pre {
    body = event:param("body");
    response = { 'thebody': body };
    rjson = response.encode();
  }
  send_directive("json") with body = rjson;
}

对于像这样的回应:

{"thebody":"hi there"}

请注意.devURL 中用于指示应用程序的开发版本,echo作为事件名称,以及webhook.

端点甚至会使用 json 的正确 mime/type 为其提供服务。

另请注意,您可以返回 html、xml、js、纯文本,甚至是重定向。查看Webhook Endpoint 文档以获取更多详细信息。

于 2011-04-09T04:51:17.937 回答