3

尝试连接到我的 Orion CB,它具有通过 IoTAgentCPP/IDAS 创建的实体。两者都是最新的 Docker 版本(okt 30 2015)。使用 FIGWAY Python 脚本一切正常:创建 IDAS 服务、注册设备、发送观察,请参阅通过 OCB 创建和更改属性的实体。

但是使用任何 WireCloud Mashup 小部件(例如向 OCB 发送 NSGI 请求的 NGSI 浏览器小部件),小部件仍然是空白的,因为 OCB 会发回:

{
  "errorCode" : {
  "code" : "404",
  "reasonPhrase" : "No context element found"
 }
}

通过 curl 查询时也会收到此回复: curl my_remote_ocb_host:1026/v1/contextEntities -S --header 'Accept: application/json'

如果我将标头 --header 'Fiware-Service: fiwareiot'(在创建带有 IDAS 的 IoT 服务时指定)添加到 curl 命令行,那么我会从 OCB 获得预期的响应。

但是,WC 中的 Widgets 和 Operators 没有办法添加Fiware-ServiceHTTP-Header。这是我通过实验室代理在 OCB 主机上使用协议捕获从 WC 收到的内容:

POST /v1/queryContext?limit=20&details=on&offset=0 HTTP/1.1
Host: <myhost>:1026
origin: https://mashup.lab.fiware.org
Cookie: ..
Content-Length: 45
via: 1.1 mashup.lab.fiware.org (Wirecloud-python-Proxy/1.1)
accept-language: en-US,en;q=0.8,de;q=0.6,fr;q=0.4,nl;q=0.2,it;q=0.2
accept-encoding: gzip, deflate
x-forwarded-host: <myhost>:1026
x-forwarded-for: ..
accept: application/json
user-agent: ..
connection: keep-alive
x-requested-with: XMLHttpRequest
referer: https://mashup.lab.fiware.org/justb4/GeonovumTemperature1
X-Auth-Token: ..
content-type: application/json

{"entities":[{"id":".*","isPattern":"true"}]}

Response: HTTP/1.1 200 OK
Content-Length: 94
Content-Type: application/json
Date: Sat, 31 Oct 2015 13:23:44 GMT

{
  "errorCode" : {
    "code" : "404",
    "reasonPhrase" : "No context element found"
  }
}

可能需要扩展 WC Widgets/Operators 的设置以允许 Fiware-Service HTTP 标头,或者是否有其他方法可以使用当前的可能性来做到这一点?

4

1 回答 1

3

WireCloud 支持在对FIWARE-Service小部件和操作符进行编程时添加标头(有关更多信息,请参阅文档)。因此,可以通过更新 FIWARE Lab 中提供的基本小部件和运算符集来支持FIWARE-Service标头来解决此问题。

我在 NGSI 浏览器小部件的问题跟踪器中为您创建了一张票。请为其他小部件/操作员创建这样的票证。

注意:如果打开组件的详细信息并单击问题跟踪器按钮,您可以转到组件的问题跟踪器: 在此处输入图像描述

于 2015-11-02T10:41:37.090 回答