Получать события через HTTP-транспорт и просматривать вывод на консоли с входными данными JSON - PullRequest
0 голосов
/ 25 февраля 2019

Я слежу за примером ReceiveAndcount в редакторе siddhi со своими собственными данными для обращения к внешнему URL-адресу, который требует входных данных для ответа (токен, даты и идентификатор_устройства).Этот запрос должен вернуть 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 находится в неисправном состоянии. "ошибка в консоли.

Я проверил документацию по siddhi и не уверен, правильно ли я передаю входные данные в URL для получения ответа

1 Ответ

0 голосов
/ 28 февраля 2019

Для отправки HTTP-запросов и получения ответов в WSO2 SP необходимо использовать http-запрос (приемник) и http-ответ (источник).Пожалуйста, смотрите код ниже,

@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 со значением для атрибутов потока (или имитировать для тестирования), запрос будет отправлен, и еслиответ имеет код 200, событие будет доставлено в localTestEventRes2xx.Пожалуйста, смотрите api docs для вышеуказанного стока и источника.

...