Ответ на событие webhook с необработанными данными - PullRequest
4 голосов
/ 08 апреля 2011

Я хотел бы написать набор правил, который может отвечать на события веб-крюка необработанными данными. Событие может прийти с 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"}}]}

Есть ли способ ответить просто необработанными данными, а не целой структурой директив?

1 Ответ

2 голосов
/ 09 апреля 2011

Ответ заключается в использовании Конечной точки Webhook для взаимодействия с 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 в URL для указания версии devприложение, echo в качестве имени события и домен события webhook.

Конечная точка будет даже обслуживать его с правильным MIME / типом для JSON.

Также обратите внимание, что выможет вернуть HTML, XML, JS, простой текст и даже перенаправление.Обратитесь к документам конечной точки Webhook для получения более подробной информации.

...