用于获取读取模型列表的 Wolkenkit REST API 执行 return 心跳条目
Wolkenkit REST API for getting a read model list does return a heartbeat entry
我听说 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"}
。那是从哪里来的,是什么意思?
这是错误还是我不小心创建了该条目?
免责声明:我是 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)
目前,我建议在您的代码中引入类似的逻辑,这样您就可以简单地忽略这些事件(随着时间的推移可能会不止一个,而且它们不需要是第一个) .
我听说 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"}
。那是从哪里来的,是什么意思?
这是错误还是我不小心创建了该条目?
免责声明:我是 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)
目前,我建议在您的代码中引入类似的逻辑,这样您就可以简单地忽略这些事件(随着时间的推移可能会不止一个,而且它们不需要是第一个) .