我想编写一个可以使用原始数据响应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"}}]}
有没有办法只使用原始数据,而不是整个指令结构?
答案 0 :(得分: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"}
请注意网址中的.dev
,用于指明应用的开发版本,echo
作为事件名称,以及webhook
的事件域。
端点甚至会为json提供适当的mime /类型。
另请注意,您可以返回html,xml,js,纯文本甚至重定向。查看Webhook Endpoint Docs了解详情。