来自bluemix io​​tf的历史REST调用中的JSON响应不包含书签

时间:2015-11-11 17:38:48

标签: json api rest ibm-cloud iot

我尝试从bluemix IoTF访问历史记录信息。 官方文档描述了REST调用:

https://docs.internetofthings.ibmcloud.com/swagger/v0002.html#!/Historical_Event_Retrieval/get_historian

所以结果应该是这样的:

{
 "bookmark": "string",
 "events": [
  {
   "device_id": "string",
   "device_type": "string",
   "evt_type": "string",
   "timestamp": {
     "$date": 0
   },

但它是这样的:

{
 "events": [
 {
   "device_id": "bluefish",
   "device_type": "esp8266",
  "evt_type": "tank",
  "timestamp": {
    "$date": 1447262923695
  },
  "evt": {
    "heater": "92",
    "westCloud": "70",
    "plateTemp": "27.50",
    "moon": "27",
    "centerCloud": "70",
    "waterTemp": "26.69",
    "eastCloud": "70"
  }
 },

看起来像是API调用的V1版本,但我称之为V2版本:

https://5rn7ip.internetofthings.ibmcloud.com:443/api/v0002/historian/?start=1447200000000&end=1447286399165

查询应返回超过100个条目,因此书签确实存在 访问其余数据所必需的。

IoTF是否存在问题或我做错了什么?

2 个答案:

答案 0 :(得分:2)

JSON响应末尾没有书签吗?

虽然swagger文档中的顺序表明书签在事件之前首先出现,但您不应该依赖于此,因为JSON对象是一组无序的名称/值对,因此从序列化程序到序列化程序的排序会有所不同,解析器不应该从订单中推断出任何东西。

http://www.json.org/

我在本地测试了它,并为包含100个以上条目的响应创建了书签,但书签显示在JSON对象的末尾。

答案 1 :(得分:1)

我们目前有一个缺陷,因为历史学家与swagger doc不匹配。我们会根据您的结果进一步调查。