在Orion中使用API​​v2

时间:2016-04-08 16:01:58

标签: fiware-orion

我们正在使用API​​v2测试订阅功能。我们遵循http://telefonicaid.github.io/fiware-orion/api/v2/中描述的准则。我们能够创建正确的订阅,但我们收到的通知消息的格式不是我们所期望的。这些消息的格式类似于APIv1版本。这是预期的行为吗?

我们正在使用https://hub.docker.com/r/fiware/orion/中的Docker镜像。

有关构建的版本信息:

{
  "orion" : {
    "version" : "1.0.0-next",
    "uptime" : "0 d, 1 h, 28 m, 47 s",
    "git_hash" : "a729812c45d2749fffbc19add17631b2fffc8797",
    "compile_time" : "Fri Apr 8 10:05:55 UTC 2016",
    "compiled_by" : "root",
    "compiled_in" : "838a42ae8431"
  }
}

重现的步骤:

创建一个实体:

(curl -X POST  http://<cb_url>:<cb_port>/v2/entities?options=keyValues -s -S --header 'Content-Type: application/json' \
    --header 'Accept: application/json' -d @- | python -mjson.tool) <<EOF
{
  "type":"Room",
  "id": "test",
  "humidity":40
}
EOF

创建订阅:

(curl -X POST  http://<cb_url>:<cb_port>/v2/subscriptions -s -S --header 'Content-Type: application/json' \
    --header 'Accept: application/json' -d @- | python -mjson.tool) <<EOF
{
  "description": "One subscription to rule them all",
  "subject": {
    "entities": [
      {
        "idPattern": ".*",
        "type": "Room"
      }
    ],
    "condition": {
      "attributes": [
        "humidity"
      ],
      "expression": {
        "q": "humidity>40"
      }
    }
  },
  "notification": {
    "callback": "http://192.168.99.1:5000",
    "attributes": [
      "humidity"
    ],
    "throttling": 5
  },
  "expires": "2016-05-05T14:00:00.00Z"
}
EOF

更新属性。:

(curl -X PUT <cb_url>:<cb_port>/v2/entities/test/attrs/humidity/value -s -S --header 'Content-Type: application/json' \
    --header 'Accept: application/json' -d @- | python -mjson.tool) <<EOF
{
  "value": 50
}
EOF

我们收到以下格式的通知:

{u'contextResponses': [
   {u'contextElement': {
      u'attributes': [{
        u'name': u'humidity',
        u'type': u'none',
        u'value': {u'value': 50}
      }],
      u'id': u'test',
      u'isPattern': u'false',
      u'type': u'Room'
   },
   u'statusCode': {
      u'code': u'200',
      u'reasonPhrase': u'OK'
   }}],
 u'originator': u'localhost',
 u'subscriptionId': u'5707b72882fc213130f4e5b9'}

1 个答案:

答案 0 :(得分:0)

NGSIv2通知格式尚未实施(在Orion 1.0.0中)。请注意,NGSIv2尚处于测试状态,有时规范(已定义新通知格式)是实施的一个步骤。

您可以订阅a github issue about this,以便了解此功能的实施时间。

编辑:在Orion 1.1.0中实施了NGSIv2通知格式。