我听说wolkenkit还提供了REST API,但没有找到任何相关文档。我对这些消息来源进行了筛选,并找到了一些关于如何做到的迹象。
我正在使用HTTPie来处理来自cli的请求:
$ http post https://local.wolkenkit.io:3500/v1/read/lists/labels
HTTP/1.1 200 OK
Access-Control-Allow-Origin: *
Cache-Control: no-store, no-cache, must-revalidate, proxy-revalidate
Connection: keep-alive
Date: Wed, 30 Aug 2017 21:08:07 GMT
Expires: 0
Pragma: no-cache
Surrogate-Control: no-store
X-FRAME-OPTIONS: DENY
X-Powered-By: Express
X-XSS-Protection: 1; mode=block
content-type: application/json
transfer-encoding: chunked
{"name":"heartbeat"}
{"label":"first","id":"baa1b2b6-ab85-4929-a488-0cae622de20a","isAuthorized":{"owner":"anonymous","forAuthenticated":false,"forPublic":true}}
{"label":"second","id":"7fc6c3c9-3285-4292-b3db-6d88ca90a347","isAuthorized":{"owner":"anonymous","forAuthenticated":false,"forPublic":true}}
我的label
readModel中有两个条目,但似乎有第三个条目{"name":"heartbeat"}
。它来自哪里,它意味着什么?
这是一个错误还是我可能意外创建了该条目?
答案 0 :(得分:2)
免责声明:我是wolkenkit的开发人员之一。
这实际上既不是错误,也不是意外创建条目; - )
我们通过HTTP流式传输JSON,我们体验到,当两个数据包之间存在长时间暂停时,某些代理服务器(以及类似的东西)会引发问题。
在过去,我们改变了读取模型的传递方式,并且我认为这仍然不是必需的,所以这是过去的延续。 (如果我们谈论的是事件路线,那么故事会有所不同,这里肯定还需要。)
在我们使用的库json-lines-client中,我们过滤掉了心跳事件:
const isNotHeartbeat = function (data) {
const keys = Object.keys(data);
return !(
(keys.length === 1) &&
(keys[0] === 'name') &&
(data.name === 'heartbeat')
);
};
(取自source code of json-lines-client 0.7.9)
目前,我建议为您的代码引入类似的逻辑,这样您就可以忽略这些事件(随着时间的推移,可能会有多个事件,并且它们不需要是第一个事件)。 / p>