通过 HTTP 传输接收事件并使用 JSON 输入数据在控制台上查看输出
Receive events via HTTP transport and view the output on the console with JSON input data
我正在使用我自己的数据在 siddhi 编辑器中关注 ReceiveAndcount 示例,以咨询需要输入数据才能响应的外部 URL(标记、日期和 device_id)。这个查询应该 return 一个 JSON 带有一个日期,一个布尔值和三个浮点数据。
我的代码如下:
@Source(type = 'http',
receiver.url='some_url',
@map(type='json',
@attributes('Token'='my_token_AAABBBCCC',
'StartDate'='2019-01-30 15:57:00',
'EndDate'='2019-01-30 15:58:00',
'Device'='device_id')))
define stream SomeStream (
date string,
ValueIsValid bool,
DATA1 float,
DATA2 float,
DATA3 float
)
-- Destination
@sink(type='log')
define stream MyOutputStream (EA1 float, EA2 float);
-- Show the selected data
@info(name='queryEA1_EA2')
from SomeStream
select EA1, EA2
insert into MyOutputStream;
我无法得到任何结果,控制台中只有一个 "TestingReceiveAndCount.siddhi - Siddhi AppTestingReceiveAndCount is in faulty state." 错误。
我已经检查了 siddhi 文档,我不确定我是否将输入数据正确传递给 URL 以获得响应
要在 WSO2 SP 中发送 HTTP 请求和接收响应,您必须使用,
http-request(sink) 和 http-response(source)。请看下面的代码,
@sink(type = 'http-request', sink.id = 'HttpReqRes', publisher.url = 'url_to_invoke', method = 'GET',
@map(type = 'json'))
define stream localTestEventReq (token string, startdate string, enddate string, device string);
@source(type = 'http-response', sink.id = 'HttpReqRes', http.status.code = '200',
@map(type = 'json'))
define stream localTestEventRes2xx(data1 string, data1 string);
此处,当您使用流属性的值调用 localTestEventReq 时(或 simulate for testing), a request will be sent out and if the response is of code 200, an event would arrive in localTestEventRes2xx. Please see the api docs 用于上述接收器和源。
我正在使用我自己的数据在 siddhi 编辑器中关注 ReceiveAndcount 示例,以咨询需要输入数据才能响应的外部 URL(标记、日期和 device_id)。这个查询应该 return 一个 JSON 带有一个日期,一个布尔值和三个浮点数据。
我的代码如下:
@Source(type = 'http',
receiver.url='some_url',
@map(type='json',
@attributes('Token'='my_token_AAABBBCCC',
'StartDate'='2019-01-30 15:57:00',
'EndDate'='2019-01-30 15:58:00',
'Device'='device_id')))
define stream SomeStream (
date string,
ValueIsValid bool,
DATA1 float,
DATA2 float,
DATA3 float
)
-- Destination
@sink(type='log')
define stream MyOutputStream (EA1 float, EA2 float);
-- Show the selected data
@info(name='queryEA1_EA2')
from SomeStream
select EA1, EA2
insert into MyOutputStream;
我无法得到任何结果,控制台中只有一个 "TestingReceiveAndCount.siddhi - Siddhi AppTestingReceiveAndCount is in faulty state." 错误。
我已经检查了 siddhi 文档,我不确定我是否将输入数据正确传递给 URL 以获得响应
要在 WSO2 SP 中发送 HTTP 请求和接收响应,您必须使用, http-request(sink) 和 http-response(source)。请看下面的代码,
@sink(type = 'http-request', sink.id = 'HttpReqRes', publisher.url = 'url_to_invoke', method = 'GET',
@map(type = 'json'))
define stream localTestEventReq (token string, startdate string, enddate string, device string);
@source(type = 'http-response', sink.id = 'HttpReqRes', http.status.code = '200',
@map(type = 'json'))
define stream localTestEventRes2xx(data1 string, data1 string);
此处,当您使用流属性的值调用 localTestEventReq 时(或 simulate for testing), a request will be sent out and if the response is of code 200, an event would arrive in localTestEventRes2xx. Please see the api docs 用于上述接收器和源。