logo资料库

设备HTTP协议上传数据到OneNET接口规范.docx

第1页 / 共6页
第2页 / 共6页
第3页 / 共6页
第4页 / 共6页
第5页 / 共6页
第6页 / 共6页
资料共6页,全文预览结束
设备HTTP协议上传数据到OneNET接口规范
1设计原则
2HTTP报文格式示例
3文本数据上传
4二进制数据上传
设备 HTTP 协议上传数据到 OneNET 接口规范 欢迎访问门户网站 http://open.iot.10086.cn/注册用户,获取最新文档。 版本号 修订日期 修订内容 说明 V1.0 2016/07/08 创建
目录 设备 HTTP 协议上传数据到 OneNET 接口规范 ..............................................................................1 1 设计原则 .................................................................................................................................... 3 2 HTTP 报文格式示例 ...................................................................................................................3 3 文本数据上传 ............................................................................................................................ 4 4 二进制数据上传........................................................................................................................ 6
1 设计原则  使用标准 HTTP 方法实现资源 CURD 操作;  采用 json 作为 API 输入输出;  以 json 输出错误信息。 HTTP 方法 POST PUT GET DELETE 支持的返回码列表: HTTP 返回码 200 400 401 含义 OK Bad Request Not Authorized 403 404 406 422 500 503 Forbidden Not Found Not Acceptable Unprocessable Entity Internal Server Error No server error 描述 新增资源信息 更新资源信息 查看资源信息 删除资源 详细描述 在 HTTP body 中以 json 格式 指明详细成功或错误信息, 例如: { "errno": 0, "error":“succ” } 成 功 、 失 败 指 示 , 主 要 以 errno 是否为零来判断。 2 HTTP 报文格式示例 示例 1: 示例 2:
设备(device) 3 文本数据上传 HTTP 方法 URL HTTP 头部 HTTP 内容 请求返回 POST http://api.heclouds.com/devices//datapoints api-key:xxxx-ffff-zzzzz 有多种数据格式,详细见下面说明 { "errno": 0, "error":“succ”, } 说明: 1) 可以一次性向设备云上传多个数据流,每个数据流中有可以包括多个数据点。示例程序 表示向设备云上数据流 temperature 和数据流 key 上传数据。其中 temperature 数据流 有两个数据点,key 数据流也有两个数据点。 2) 如果某个数据流不存在,也就是事先没有通过 4.4.1 节中新增数据流的 API 创建本数据 流,则在增加数据点时,设备云会自动创建一个新的数据流,注意新数据流的 streamid 不可为空。 3) 数据点表示在某个时刻,该数据流的值为多少。其 at 表示时间,为可选字段。如果为 空,则设备云会取当前时间。如果存在其格式必须为"2013-04-22T00:35:43"的形式。 4) 数据点中的 value 表示具体的值,其值为 JSON 对象,可以为整型、字符串多种类型。 如果 value 部分用双引号括起来,则其在设备云存储为字符串,如果不用双引号括起来, 则其表示数字。 5) 数据点对应的时间是数据点的标识的一部分,相同时间的两个数据点,后一个会把前一 个覆盖。一般如果 at 部分取空,设备云会取系统时间,精度为毫秒,如果在一条命令 中某一个数据流包含多个数据点都没有 at 字段,会导致设备云只保存了最后一条。 6) 为了节省流量,增加数据点支持如下简写方式。在请求的 URL 中增加 type 字段,指示 所使用的简写方式。目前 type 支持 3,4,5 三种情况  http:///devices//datapoints?type=3 {“temperature”:22.5,”humidity”:”95.2%”} 表示在数据流 temperature 中增加一个数据点 22.5,在 humidity 中增加一个数据点 95.2%。  http:///devices//datapoints?type=4 {“temperature”:{“2015-03-22T22:31:12”:22.5}}
表示在数据流 temperature 中加一个数据点,在 2015 年 2 月 22 日 22 点 31 分 12 秒的值为 22.5  http:///devices//datapoints?type=5 ,;temperature,2015-03-22T22:31:12,22.5;102;pm2.5,89;10 补充说明: 消息中最前面两位为用户自定义的域中分隔符和域间分隔符,这两个分隔符不能相同。 比如采用逗号作为域中分隔符,分号作为域间分隔符的格式如下: ,;feild0;feild1;…;feildn 其中,每个 field 格式支持 3 种,下面以逗号作为域中分隔符进行说明: field 格式 1: 3 个子字段,分别是数据流 ID,时间戳,数据值。通用格式: Datastream_id,datetime,value field 格式 2: 2 个子字段,分别是数据流 ID 和数据值,省略时间戳。通用格式: Datastream_id,value field 格式 3: 1 个子字段,省略了数据 ID 和时间戳,只传输数据值,平台将用该域所 在的位置号(从 0 开始)作为数据流 ID。通用格式: 注意:此格式中的数据点值均视为字符串。 示例: (1),;temperature,2015-03-22T22:31:12,22.5;102;pm2.5,89 此段数据一共包括 3 个数据点,改写为基本格式为: { “datastreams”:[ { }, { }, { “id”:”temperature”, “datapoints”:[ “at”:”2015-03-22T22:31:12”, “value”:”22.5” { } ] “id”:”1”, “datapoints”:[ “value”:”102” { } ] “id”:”pm2.5”, “datapoints”:[ { } “value”:”89”
] } ] } 4 二进制数据上传 功能:将二进制的数据保存到设备云,设备云返回该二进制数据的索引;并根据参数,将二 进制数据作为数据点保存到设备下的某个数据流。 HTTP 方法 URL HTTP 头部 URL 参数 POST http://api.heclouds.com/bindata api-key:xxxx-ffff-zzzzz device_id,必选,该数据所属设备。 datastream_id,必选,该数据所属数据流。 普通二进制数据、文件、图像 { HTTP 内容 请求返回 "errno": 0, "error":“succ”, "data":{ //该数据在设备云的索引 "index":“AJOWFW1133OFO2Z93” } }
分享到:
收藏