Coolpy酷痞物联网平台 API手册 (Designed by:黎东海 Edited by:嘎嘣脆 适用于v2.0)

Coolpy的数据结构

Coolpy-Hub-Node-Datapoint

RESTfull API风格介绍

HTTP客户端请求方法
方法类型 描述
GET

向服务器请求获取指定数据

POST

请求服务器接收指定格式数据

PUT

用从客户端传送的数据取代服务器指定位置的数据

DELETE

请求服务器删除指定位置的数据

HTTP客户端请求头
头类型 描述
Host

指定要请求的服务器主机头 (如 api.coolpy.com 、127.0.0.1:1337 等)

User-Agent

指定客户端类型 (如 Fiddler)

Content-Type

指明实体数据的传送类型 (如 application/json)

Content-Length

指明实体数据的长度(以字节为单位计算)

U-ApiKey

访问授权认证密钥 (登陆平台内的“账户管理”可获得,也可以通过使用账号密码构建请求来获取)

对coolpy的任何请求操作都必须由U-ApiKey头来授权,Content-Type请求头必须设置为application/json

支持的实体数据类型

只支持JSON类型的数据

JSON官方参考文档

枢纽 Hub

操作对象
枢纽是一系列节点的集合,所有节点都位于枢纽之下。
枢纽操作简要描述: 方法列表
方法 描述
添加枢纽 请求创建一个的枢纽
编辑枢纽 请求编辑修改某个枢纽的属性
获取枢纽 请求得到某一个枢纽的属性信息
列举用户的所有枢纽 请求获取用户已添加的所有枢纽的属性
删除枢纽 请求删除某个已添加的枢纽
请求列表
请求方式 作用描述
POST 添加枢纽
PUT 编辑枢纽
GET 罗列枢纽/查看枢纽
DELETE 删除枢纽
枢纽操作详细方法:
向服务器请求添加一个新的枢纽 (Hub)
请求方式
POST
HTTP请求方法
URL:
  • /v1.0/hubs HTTP/1.1
参数列表
参数名 是否必须 描述
title 必须 枢纽的名称
about 必须 对枢纽作用的描述
tags 必须 枢纽用途关键词
location.local 必须 枢纽所在地理位置,如:山东青岛
location.latitude 必须 经度
location.longitude 必须 纬度
返回值列表
类型 描述
hub_id 枢纽ID号
代码示例
HTTP请求报文 HTTP返回报文
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
POST http://127.0.0.1:1337/v1.0/hubs HTTP/1.1
Host: 127.0.0.1:1337
User-Agent: Fiddler
Content-Type: application/json
U-ApiKey: 83721fab-2e5d-4b36-9c34-48056692f366
Content-Length: 153

{
 "title":"apitest",
 "about":"test api",
 "tags":"temperature,lab",
 "location":{
 	"local":"Qingdao",
 	"latitude":0.444,
 	"longitude":0.555
 }
 }
1
2
3
4
5
6
7
8
9
10
HTTP/1.1 200 OK
Content-Length: 15
Content-Type: application/json; charset=utf-8
Server: Microsoft-IIS/7.5
X-Powered-By: Express
X-Powered-By: ARR/2.5
X-Powered-By: ASP.NET
Date: Wed, 18 Mar 2015 12:38:00 GMT

{"hub_id":7}
向服务器请求编辑修改某个枢纽的属性 (Hub)
请求方式
PUT
HTTP请求方法
URL:
  • /v1.0/hub/<hub_id> HTTP/1.1
参数列表
参数名 是否必须 描述
<hub_id> 必须 枢纽的ID号(该参数包含在URL中)
title 必须 枢纽的名称
about 必须 对枢纽作用的描述
tags 必须 枢纽用途关键词
location.local 必须 枢纽所在地理位置,如:山东青岛
location.latitude 必须 经度
location.longitude 必须 纬度
返回值列表
类型 描述
返回值为空
代码示例
HTTP请求报文 HTTP返回报文
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
PUT http://127.0.0.1:1337/v1.0/hub/7 HTTP/1.1
Host: 127.0.0.1:1337
Content-Length: 152
U-ApiKey: 83721fab-2e5d-4b36-9c34-48056692f366
Content-Type: application/json

{
 "title":"hub001",
 "about":"I`m a hub",
 "tags":"huber,lab",
 "location":{
 	"local":"HaiNan",
 	"latitude":0.777,
 	"longitude":0.888
 }
 }
1
2
3
4
5
6
7
HTTP/1.1 200 OK
Server: Microsoft-IIS/7.5
X-Powered-By: Express
X-Powered-By: ARR/2.5
X-Powered-By: ASP.NET
Date: Wed, 18 Mar 2015 13:06:11 GMT
Content-Length: 0

获取某个枢纽

check-hub
向服务器请求得到某一个枢纽的属性信息 (Hub)
请求方式
GET
HTTP请求方法
URL:
  • /v1.0/hub/<hub_id> HTTP/1.1
参数列表
参数名 是否必须 描述
<hub_id> 必须 枢纽的ID号(该参数包含在URL中)
返回值列表
参数名 描述
title 枢纽的名称
about 对枢纽作用的描述
tags 枢纽用途关键词
location.local 枢纽所在地理位置,如:山东青岛
location.latitude 经度
location.longitude 纬度
代码示例
HTTP请求报文 HTTP返回报文
1
2
3
4
5
6
GET /v1.0/hub/7/ HTTP/1.1
Host: 127.0.0.1:1337
U-ApiKey: 83721fab-2e5d-4b36-9c34-48056692f366
Connection: close


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
HTTP/1.1 200 OK
Content-Length: 134
Content-Type: application/json; charset=utf-8
ETag: W/"86-673a68a1"
Server: Microsoft-IIS/7.5
X-Powered-By: Express
X-Powered-By: ARR/2.5
X-Powered-By: ASP.NET
Date: Wed, 18 Mar 2015 13:12:45 GMT
Connection: close

{"id":7,
"title":"hub001",
"about":"I`m a hub",
"location":{
	"local":"HaiNan",
	"latitude":0.777,
	"longitude":0.888},
"tags":["huber,lab"]
}
向服务器请求获取某个用户已添加的所有枢纽的属性 (Hub)
请求方式
GET
HTTP请求方法
URL:
  • /v1.0/hubs/ HTTP/1.1
参数列表
参数名 是否必须 描述
非必须 无参数
返回值列表
参数名 描述
title 枢纽的名称
about 对枢纽作用的描述
tags 枢纽用途关键词
location.local 枢纽所在地理位置,如:山东青岛
location.latitude 经度
location.longitude 纬度
代码示例
HTTP请求报文 HTTP返回报文
1
2
3
4
5
6
GET /v1.0/hubs/ HTTP/1.1
Host: 127.0.0.1:1337
U-ApiKey: 83721fab-2e5d-4b36-9c34-48056692f366
Connection: close


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
HTTP/1.1 200 OK
Content-Length: 408
Content-Type: application/json; charset=utf-8
ETag: W/"198-e56ba4d4"
Server: Microsoft-IIS/7.5
X-Powered-By: Express
X-Powered-By: ARR/2.5
X-Powered-By: ASP.NET
Date: Wed, 18 Mar 2015 13:19:59 GMT
Connection: close

[
{"id":4,
"title":"test",
"about":"test api",
"location"{
	"local":"Qingdao",
	"latitude":0.444,
	"longitude":0.555
	},
"tags":["temperature,lab"]
},
{"id":5,
"title":"apit",
"about":"test api",
"location":{
	"local":"Qingdao",
	"latitude":0.444,
	"longitude":0.555
	},
"tags":["temperature,lab"]
}
]

删除枢纽

delete-hub
向服务器请求删除某个已添加的枢纽 (Hub)
请求方式
DELETE
HTTP请求方法
URL:
  • /v1.0/hub/<hub_id> HTTP/1.1
参数列表
参数名 是否必须 描述
<hub_id> 必须 枢纽的ID号(该参数包含在URL中)
返回值列表
类型 描述
无返回值
代码示例
HTTP请求报文 HTTP返回报文
1
2
3
4
5
6
DELETE http://127.0.0.1:1337/v1.0/hub/5 HTTP/1.1
Host: 127.0.0.1:1337
U-ApiKey: 83721fab-2e5d-4b36-9c34-48056692f366
Connection: close


1
2
3
4
5
6
7
8
9
10
HTTP/1.1 200 OK
Server: Microsoft-IIS/7.5
X-Powered-By: Express
X-Powered-By: ARR/2.5
X-Powered-By: ASP.NET
Date: Wed, 18 Mar 2015 13:27:48 GMT
Connection: close
Content-Length: 0


节点Node

操作对象
节点的最终数据存储于此位置,所有节点都存在于枢纽之内
节点操作简要描述: 方法列表
方法 描述
添加节点 请求在某个枢纽下创建一个新的节点
编辑节点 请求编辑修改某个枢纽下某个节点的参数
查看某个节点 请求获取某个枢纽下某个节点的参数
列举枢纽内所有节点 请求获取某个枢纽下的所有节点的参数
删除某个节点 请求删除某个枢纽下某个已添加的节点
请求列表
请求方式 作用描述
POST 添加节点
PUT 编辑节点
GET 罗列节点/查看节点
DELETE 删除节点
节点操作详细方法:

添加节点

add-node
向服务器请求在某个枢纽下添加一个新的节点 (Node)
请求方式
POST
HTTP请求方法
URL:
  • /v1.0/hub/<hub_id>/nodes HTTP/1.1
参数列表
参数名 是否必须 描述
<hub_id> 必须 某个枢纽的ID号(该参数包含在URL中)
type 必须 节点类型,目前支持的有:value(数值型), switcher(开关型), gps, gen(自定义型),gencontrol(通用控制器) photo(图片型)
title 必须 标题
about 必须 简介
tags 必须 对节点用途描述的关键词
unit.name 必须 单位
unit.symbol 必须 符号
range 必须 这个参数仅仅在有数值范围的节点中有意义(如数值范围控制器),在其他类型节点中无意义,但是必须包含在请求的数据中,使之构成完整的结构
返回值列表
类型 描述
node_id 节点ID号
代码示例
HTTP请求报文 HTTP返回报文
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
POST http://127.0.0.1:1337/v1.0/hub/7/nodes HTTP/1.1
Host: 127.0.0.1:1337
User-Agent: Fiddler
Content-Type: application/json
U-ApiKey: 83721fab-2e5d-4b36-9c34-48056692f366
Content-Length: 176

{
 "type":"value",
 "title":"node001",
 "about":"this is a node",
 "tags":"数据,温度",
 "unit": {
 "name": "摄氏度",
 "symbol": "°C"
 },
    "range": {
        "min": 0,
        "max": 255,
        "step": 5
    }

 }
1
2
3
4
5
6
7
8
9
10
HTTP/1.1 200 OK
Content-Length: 16
Content-Type: application/json; charset=utf-8
Server: Microsoft-IIS/7.5
X-Powered-By: Express
X-Powered-By: ARR/2.5
X-Powered-By: ASP.NET
Date: Wed, 18 Mar 2015 13:42:07 GMT

{"node_id":26}

编辑节点

edit-node
向服务器请求编辑修改某个枢纽下某个节点的参数 (Node)
请求方式
PUT
HTTP请求方法
URL:
  • /v1.0/hub/<hub_id>/node/<node_id> HTTP/1.1
参数列表
参数名 是否必须 描述
<hub_id> 必须 某个枢纽的ID号(该参数包含在URL中)
<node_id> 必须 节点的ID号(该参数包含在URL中)
type 必须 节点类型,目前支持的有:value(数值型), switcher(开关型), gps, gen(自定义型),gencontrol(通用控制器) photo(图片型)
title 必须 标题
about 必须 简介
tags 必须 对节点用途描述的关键词
unit.name 必须 单位
unit.symbol 必须 符号
range 必须 这个参数仅仅在有数值范围的节点中有意义(如数值范围控制器),在其他类型节点中无意义,但是必须包含在请求的数据中,使之构成完整的结构
返回值列表
类型 描述
返回值为空
代码示例
HTTP请求报文 HTTP返回报文
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
PUT /v1.0/hub/7/node/26 HTTP/1.1
Host: 127.0.0.1:1337
Content-Length: 159
U-ApiKey: 83721fab-2e5d-4b36-9c34-48056692f366
Content-Type: application/json

{
 "type":"value",
 "title":"node001",
 "about":"I`m a node",
 "tags":"数据,温度",
 "unit": {
 "name": "摄氏度",
 "symbol": "°C"
 },
    "range": {
        "min": 0,
        "max": 255,
        "step": 5
    }

 }
1
2
3
4
5
6
7
8
9
HTTP/1.1 200 OK
Server: Microsoft-IIS/7.5
X-Powered-By: Express
X-Powered-By: ARR/2.5
X-Powered-By: ASP.NET
Date: Wed, 18 Mar 2015 13:49:38 GMT
Content-Length: 0


查看节点

check-node
向服务器请求获得某个枢纽下的某个节点的参数。 (Node)
请求方式
GET
HTTP请求方法
URL:
  • /v1.0/hub/<hub_id>/node/<node_id> HTTP/1.1
参数列表
参数名 是否必须 描述
<hub_id> 必须 某个枢纽的ID号(该参数包含在URL中)
<node_id> 必须 节点的ID号(该参数包含在URL中)
返回值列表
参数名 描述
id 节点ID
type 节点类型,目前支持的有:value(数值型), switcher(开关型), gps, gen(自定义型),gencontrol(通用控制器) photo(图片型)
title 标题
about 简介
tags 对节点用途描述的关键词
unit.name 单位名称
unit.symbol 单位符号
range 这个参数仅仅在有数值范围的节点中有意义(如数值范围控制器),在其他类型节点中无意义,但是必须包含在请求的数据中,使之构成完整的结构
代码示例
HTTP请求报文 HTTP返回报文
1
2
3
4
5
6
GET /v1.0/hub/7/node/26 HTTP/1.1
Host: 127.0.0.1:1337
U-ApiKey: 83721fab-2e5d-4b36-9c34-48056692f366
Connection: close


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
HTTP/1.1 200 OK
Content-Length: 135
Content-Type: application/json; charset=utf-8
ETag: W/"87-37f3e37a"
Server: Microsoft-IIS/7.5
X-Powered-By: Express
X-Powered-By: ARR/2.5
X-Powered-By: ASP.NET
Date: Wed, 18 Mar 2015 13:54:18 GMT
Connection: close

{
"id":26,
"type":"value",
"title":"node001",
"about":"I`m a node",
"range": {"min": 0,"max": 255,"step": 5},
"unit":{"name":"摄氏度","symbol":"°C"},
"tags":["数据,温度"]
}
向服务器请求获取某个枢纽下的所有节点的参数 (Node)
请求方式
GET
HTTP请求方法
URL:
  • /v1.0/hub/<hub_id>/nodes HTTP/1.1
参数列表
参数名 是否必须 描述
<hub_id> 必须 某个枢纽的ID号(该参数包含在URL中)
返回值列表
参数名 描述
id 节点ID
hubid 节点所在枢纽ID
type 节点类型,目前支持的有:value(数值型), switcher(开关型), gps, gen(自定义型),gencontrol(通用控制器) photo(图片型)
title 标题
about 简介
tags 对节点用途描述的关键词
unit.name 单位名称
unit.symbol 单位符号
range 这个参数仅仅在有数值范围的节点中有意义(如数值范围控制器),在其他类型节点中无意义,但是必须包含在请求的数据中,使之构成完整的结构
代码示例
HTTP请求报文 HTTP返回报文
1


2
3
4
GET /v1.0/hub/7/nodes HTTP/1.1
Host: 127.0.0.1:1337
U-ApiKey: 83721fab-2e5d-4b36-9c34-48056692f366
Connection: close


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
HTTP/1.1 200 OK
Content-Length: 257
Content-Type: application/json; charset=utf-8
ETag: W/"101-e66e6865"
Server: Microsoft-IIS/7.5
X-Powered-By: Express
X-Powered-By: ARR/2.5
X-Powered-By: ASP.NET
Date: Wed, 18 Mar 2015 14:02:10 GMT
Connection: close

[
{
"id":26,"hubid":7,
"type":"value",
"title":"node001",
"about":"I`m a node",
"range": {"min": 0,"max": 255,"step": 5},
"unit":{"name":"摄氏度","symbol":"°C"},
"tags":["数据,温度"]
},
{
"id":28,"hubid":7,
"type":"value",
"title":"ghgg",
"about":"ddddd",
"range": {"min": 0,"max": 255,"step": 5},
"unit":{"name":"","symbol":""},
"tags":["fgf"]
}
]

删除节点

delete-node
向服务器请求删除某个枢纽下某个已添加的节点 (Node)
请求方式
DELETE
HTTP请求方法
URL:
  • /v1.0/hub/<hub_id>/node/<node_id> HTTP/1.1
参数列表
参数名 是否必须 描述
<hub_id> 必须 某个枢纽的ID号(该参数包含在URL中)
<node_id> 必须 节点的ID号(该参数包含在URL中)
返回值列表
类型 描述
无返回值
代码示例
HTTP请求报文 HTTP返回报文
1
2
3
4
5
6
DELETE /v1.0/hub/7/node/28 HTTP/1.1
Host: 127.0.0.1:1337
U-ApiKey: 83721fab-2e5d-4b36-9c34-48056692f366
Connection: close


1
2
3
4
5
6
7
8
9
HTTP/1.1 200 OK
X-Powered-By: Express
Date: Sat, 27 Jun 2015 07:18:57 GMT
Connection: close
Transfer-Encoding: chunked

0


数据点 Datapoint

操作对象
节点的最终数据存储于此位置,节点的所有数据都以数据点的形式存储
节点操作简要描述: 方法列表
方法 描述
添加数据点 为节点添加一个新的数据点 注意:开关型节点、通用型控制器和数值范围控制器均不可添加数据点,均无数据点的概念,只能通过节点层操作
编辑数据点 请求编辑修改某个节点的某个数据点的参数
查看数据点 获得某个节点的某个数据点参数
删除数据点 删除某个枢纽下某个节点的某个数据点 注意:开关型节点、通用型控制器和数值范围控制器均不可删除数据点,均无数据点的概念,只能通过节点层操作
数据点操作详细方法:

添加数据点

add-datapoint
为节点添加一个数据点 (Datapoint)
请求方式
POST
HTTP请求方法
URL:
  • /v1.0/hub/<hub_id>/node/<node_id>/datapoints HTTP/1.1
数值型数据 参数列表
参数名 是否必须 描述
<hub_id> 必须 某个枢纽的ID号(该参数包含在URL中)
<node_id> 必须 节点的ID号(该参数包含在URL中)
timestamp 非必须 时间,若为空则系统自动添加当前的时间,格式如:"2012-03-15T16:13:14"
value 必须 数值,大于等于零的实数
返回值列表
类型 描述
GPS型数据 参数列表
参数名 是否必须 描述
<hub_id> 必须 某个枢纽的ID号(该参数包含在URL中)
<node_id> 必须 节点的ID号(该参数包含在URL中)
timestamp 非必须 时间,若为空则系统自动添加当前的时间,格式如:"2012-03-15T16:13:14"
value.lat 必须 纬度
value.lng 必须 经度
value.speed 必须 速度
value.offset 非必须 修正(可选)
返回值列表
类型 描述
自定义型数据 参数列表
参数名 是否必须 描述
<hub_id> 必须 某个枢纽的ID号(该参数包含在URL中)
<node_id> 必须 节点的ID号(该参数包含在URL中)
key 必须 数据存储点的ID号,用于区分需要存取的数据
value 必须 可以自定义任意结构的json键值对,可嵌套,可用数组,自由度很高,长度不超过1024个字符
返回值列表
类型 描述
数值型数据 代码示例
HTTP请求报文 HTTP返回报文
1
2
3
4
5
6
7
8
9
10
11
POST /v1.0/hub/7/node/26/datapoints HTTP/1.1
Host: 127.0.0.1:1337
User-Agent: Fiddler
Content-Type: application/json
U-ApiKey: 83721fab-2e5d-4b36-9c34-48056692f366
Content-Length: 59

{
 "timestamp":"2015-03-05T21:39:11",
 "value":270
 }
1
2
3
4
5
6
7
8
9
10
HTTP/1.1 200 OK
Server: Microsoft-IIS/7.5
X-Powered-By: Express
X-Powered-By: ARR/2.5
X-Powered-By: ASP.NET
Date: Wed, 18 Mar 2015 14:04:20 GMT
Connection: close
Content-Length: 0


GPS型数据 代码示例
HTTP请求报文 HTTP返回报文
1
2
3
4
5
6
7
8
9
10
11
POST /v1.0/hub/1/node/1/datapoints HTTP/1.1
User-Agent: Fiddler
Host: 127.0.0.1:1337
Content-Length: 101
Content-Type: application/json
U-ApiKey: 21ddb3bc-11d8-42d8-8123-b1b7cb192a97

{
  "timestamp":"2014-12-31T09:15:17",
  "value":{"lat":29.128848,"lng":110.475165,"speed":98.2}
}
1
2
3
4
5
6
7
8
9
HTTP/1.1 200 OK
X-Powered-By: Express
Date: Wed, 29 Apr 2015 07:22:27 GMT
Connection: keep-alive
Transfer-Encoding: chunked

0


自定义型数据 代码示例
HTTP请求报文 HTTP返回报文
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
POST /v1.0/hub/1/node/4/datapoints HTTP/1.1
HOST: 127.0.0.1:1337
Content-Type: application/json
U-Apikey: 21ddb3bc-11d8-42d8-8123-b1b7cb192a97
Connection: close
Content-Length: 89

{
"key":"mystyle",
"value":
	{
	"node":"gps",
	"time":1351824120,
	"data":[48.756080,2.302038] 
	}
}
1
2
3
4
5
6
7
8
9
HTTP/1.1 200 OK
X-Powered-By: Express
Date: Sat, 02 May 2015 18:14:44 GMT
Connection: close
Transfer-Encoding: chunked

0


编辑数据点

edit-datapoint
向服务器请求编辑修改某个节点的某个数据点的参数 (Datapoint)
请求方式
PUT
HTTP请求方法
URL:
  • /v1.0/hub/<hub_id>/node/<node_id>/datapoint/<key> HTTP/1.1
数值型数据 参数列表
参数名 是否必须 描述
<hub_id> 必须 节点所在枢纽的ID号(该参数包含在URL中)
<node_id> 必须 节点的ID号(该参数包含在URL中)
< key > 必须 时间点,即timestamp(该参数包含在URL中),格式如:"2012-03-15T16:13:14"
value 必须 数值,大于等于零的实数
返回值列表
类型 描述
返回值为空
开关型数据 参数列表
参数名 是否必须 描述
<hub_id> 必须 某个枢纽的ID号(该参数包含在URL中)
<node_id> 必须 节点的ID号(该参数包含在URL中)
value 必须 0或1,0代表关,1代表开
返回值列表
类型 描述
返回值为空
GPS型数据 参数列表
参数名 是否必须 描述
<hub_id> 必须 某个枢纽的ID号(该参数包含在URL中)
<node_id> 必须 节点的ID号(该参数包含在URL中)
< key > 必须 时间点,即timestamp(该参数包含在URL中),格式如:"2012-03-15T16:13:14"
value.lat 必须 纬度
value.lng 必须 经度
value.speed 必须 速度
value.offset 非必须 修正(可选)
返回值列表
类型 描述
返回值为空
自定义型数据 参数列表
参数名 是否必须 描述
<hub_id> 必须 某个枢纽的ID号(该参数包含在URL中)
<node_id> 必须 节点的ID号(该参数包含在URL中)
key 可选 数据存储点的ID号,用于区分需要存取的数据,该参数必须在URL中提供。该参数在实体json数据中是非必需的,若给予key新的值,则该数据点的key将被修改。若不想更改key,可以直接省略改参数
value 必须 可以自定义任意结构的json键值对,可嵌套,可用数组,自由度很高,长度不超过1024个字符
返回值列表
类型 描述
返回值为空
通用控制器 参数列表
参数名 是否必须 描述
<hub_id> 必须 某个枢纽的ID号(该参数包含在URL中)
<node_id> 必须 节点的ID号(该参数包含在URL中)
value 必须 可以为一条任意字符串,长度小于1024个字符,不能嵌套
返回值列表
类型 描述
返回值为空
数值范围控制器 参数列表
参数名 是否必须 描述
<hub_id> 必须 某个枢纽的ID号(该参数包含在URL中)
<node_id> 必须 节点的ID号(该参数包含在URL中)
value 必须 最大范围为-10000~10000,具体范围视节点创建时设定的范围值而定
返回值列表
类型 描述
返回值为空
数值型数据 代码示例
HTTP请求报文 HTTP返回报文
1
2
3
4
5
6
7
8
PUT /v1.0/hub/1/node/2/datapoint/2015-03-07T09:10:00 HTTP/1.1
Host: 127.0.0.1:1337
User-Agent: Fiddler
Content-Type: application/json
U-ApiKey: 21ddb3bc-11d8-42d8-8123-b1b7cb192a97
Content-Length: 15

{ "value":44.0}
1
2
3
4
5
6
7
8
HTTP/1.1 200 OK
X-Powered-By: Express
Date: Wed, 29 Apr 2015 09:14:58 GMT
Connection: keep-alive
Transfer-Encoding: chunked

0

开关型数据 代码示例
HTTP请求报文 HTTP返回报文
1
2
3
4
5
6
7
8
PUT http://127.0.0.1:1337/v1.0/hub/1/node/3/datapoint HTTP/1.1
User-Agent: Fiddler
Content-Type: application/json
U-ApiKey: 21ddb3bc-11d8-42d8-8123-b1b7cb192a97
Host: 127.0.0.1:1337
Content-Length: 12

{ "value":1}
1
2
3
4
5
6
7
8
HTTP/1.1 200 OK
X-Powered-By: Express
Date: Wed, 29 Apr 2015 09:25:18 GMT
Connection: keep-alive
Transfer-Encoding: chunked

0

GPS型数据 代码示例
HTTP请求报文 HTTP返回报文
1
2
3
4
5
6
7
8
PUT /v1.0/hub/1/node/1/datapoint/2015-04-29T16:34:15 HTTP/1.1
User-Agent: Fiddler
Content-Type: application/json
U-ApiKey: 21ddb3bc-11d8-42d8-8123-b1b7cb192a97
Host: 127.0.0.1:1337
Content-Length: 56

{"value":{"lat":29.128848,"lng":111.475165,"speed":100}}
1
2
3
4
5
6
7
8
HTTP/1.1 200 OK
X-Powered-By: Express
Date: Wed, 29 Apr 2015 08:40:08 GMT
Connection: keep-alive
Transfer-Encoding: chunked

0

自定义型数据 代码示例
HTTP请求报文 HTTP返回报文
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
PUT /v1.0/hub/1/node/4/datapoint/mygpskey HTTP/1.1
Host: 127.0.0.1:1337
Content-Type: application/json
U-ApiKey: 21ddb3bc-11d8-42d8-8123-b1b7cb192a97
Connection: close
Content-Length: 85

{
"key":"mystyle",
"value":
	{
	"node":"我的节点",
	"tel":1351824120,
	"data":[48.756080,2.302038] 
	}
}
1
2
3
4
5
6
7
8
HTTP/1.1 200 OK
X-Powered-By: Express
Date: Sat, 02 May 2015 18:43:43 GMT
Connection: close
Transfer-Encoding: chunked

0

通用控制器 代码示例
HTTP请求报文 HTTP返回报文
1
2
3
4
5
6
7
PUT http://127.0.0.1:1337/v1.0/hub/1/node/6/datapoint HTTP/1.1
Host: 127.0.0.1:1337
Content-Type:application/json
U-ApiKey: 21ddb3bc-11d8-42d8-8123-b1b7cb192a97
Connection: close

{"value":"hellow world !"}
1
2
3
4
5
6
7
8
HTTP/1.1 200 OK
X-Powered-By: Express
Date: Sat, 02 May 2015 18:43:43 GMT
Connection: close
Transfer-Encoding: chunked

0

数值范围控制器 代码示例
HTTP请求报文 HTTP返回报文
1
2
3
4
5
6
7
8
PUT http://127.0.0.1:1337/v1.0/hub/1/node/7/datapoint HTTP/1.1
Host: 127.0.0.1:1337
Content-Type: application/json
U-ApiKey: 21ddb3bc-11d8-42d8-8123-b1b7cb192a97
Connection: close
Content-Length: 14

{"value":4000}
1
2
3
4
5
6
7
8
HTTP/1.1 200 OK
X-Powered-By: Express
Date: Sat, 02 May 2015 18:43:43 GMT
Connection: close
Transfer-Encoding: chunked

0

查看数据点

check-datapoint
向服务器请求获得某个节点的某个数据点参数。 (Datapoint)
请求方式
GET
HTTP请求方法
URL:
  • /v1.0/hub/<hub_id>/node/<node_id>/datapoint/<key> HTTP/1.1
参数列表
参数名 是否必须 描述
<hub_id> 必须 某个枢纽的ID号(该参数包含在URL中)
<node_id> 必须 节点的ID号(该参数包含在URL中)
<key> 必须 数据点的ID号(该参数包含在URL中)。在数值型和GPS型中,该值为数据点的timestamp(若该参数留空则代表获取最新上传的数据);在开关型、通用控制器型和数值范围控制器型数据中,该参数没有意义,直接留空;在自定义型数据中,该参数为数据存储点的ID号(也是参数key),是一个必须提供的参数
请求参数key不为空时 返回值列表
参数名 描述
value 数据值
请求参数key为空时 返回值列表
参数名 描述
value 数据值
nodeid 数据点所在节点的ID(仅数值型返回)
hubid 数据点所在枢纽的ID(仅数值型返回)
timestamp 数据点添加的时间戳(仅数值型和GPS型返回)
key 自定义型数据(仅通用型返回)
数值型数据 代码示例
HTTP请求报文 HTTP返回报文
1

2
3
4
5
6
7
GET /v1.0/hub/1/node/2/datapoint
/2015-03-07T09:10:00 HTTP/1.1
Host: 127.0.0.1:1337
User-Agent: Fiddler
Content-Type: application/json
U-ApiKey: 21ddb3bc-11d8-42d8-8123-b1b7cb192a97


1
2
3
4
5
6
7
8
9
HTTP/1.1 200 OK
X-Powered-By: Express
Content-Type: application/json; charset=utf-8
Content-Length: 12
ETag: W/"c-b3f4b6b1"
Date: Wed, 29 Apr 2015 18:29:58 GMT
Connection: keep-alive

{"value":44}
开关型数据 代码示例
HTTP请求报文 HTTP返回报文
1
2
3
4
5
6
7
GET /v1.0/hub/1/node/3/datapoint HTTP/1.1
User-Agent: Fiddler
Content-Type: application/json
U-ApiKey: 21ddb3bc-11d8-42d8-8123-b1b7cb192a97
Host: 127.0.0.1:1337


1
2
3
4
5
6
7
8
9
HTTP/1.1 200 OK
X-Powered-By: Express
Content-Type: application/json; charset=utf-8
Content-Length: 29
ETag: W/"1d-a009698b"
Date: Wed, 29 Apr 2015 18:40:15 GMT
Connection: keep-alive

{"value":1,"nodeid":3,"hubid":1}
GPS型数据 代码示例
HTTP请求报文 HTTP返回报文
1

2
3
4
5
6
7
GET /v1.0/hub/1/node/1/datapoint
/2015-04-29T16:34:15 HTTP/1.1
User-Agent: Fiddler
Content-Type: application/json
U-ApiKey: 21ddb3bc-11d8-42d8-8123-b1b7cb192a97
Host: 127.0.0.1:1337


1
2
3
4
5
6
7
8
9
10
11
12
HTTP/1.1 200 OK
X-Powered-By: Express
Content-Type: application/json; charset=utf-8
Content-Length: 56
ETag: W/"38-2b89608"
Date: Wed, 29 Apr 2015 18:44:37 GMT
Connection: keep-alive

{
"value":{
"lat":29.128848,"lng":111.475165,"speed":100}
}
自定义型数据 代码示例
HTTP请求报文 HTTP返回报文
1
2
3
4
5
6
7
GET /v1.0/hub/1/node/4/datapoint/mystyle HTTP/1.1
Host: 127.0.0.1:1337
Content-Type: application/json
U-ApiKey: 21ddb3bc-11d8-42d8-8123-b1b7cb192a97
Connection: close


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
HTTP/1.1 200 OK
X-Powered-By: Express
Content-Type: application/json; charset=utf-8
Content-Length: 71
ETag: W/"47-6d4e1c7a"
Date: Sat, 02 May 2015 19:57:11 GMT
Connection: close

{
"value":
	{
	"node":"我的节点",
	"tel":1351824120,
	"data":[48.756080,2.302038],
	 unit": {
            "name": "摄氏度",
            "symbol": "°C"
        },
	}
}
通用控制器 代码示例
HTTP请求报文 HTTP返回报文
1
2
3
4
5
6
7
GET /v1.0/hub/1/node/6/datapoint HTTP/1.1
Host: 127.0.0.1:1337
Content-Type: application/json
U-ApiKey: 21ddb3bc-11d8-42d8-8123-b1b7cb192a97
Connection: close


1
2
3
4
5
6
7
8
9
HTTP/1.1 200 OK
X-Powered-By: Express
Content-Type: application/json; charset=utf-8
Content-Length: 44
ETag: W/"2c-588affa3"
Date: Sat, 02 May 2015 19:17:25 GMT
Connection: close

{"value":"hellow world !","nodeid":6,"hubid":1}
数值范围控制器 代码示例
HTTP请求报文 HTTP返回报文
1
2
3
4
5
6
7
GET /v1.0/hub/1/node/7/datapoint HTTP/1.1
Host: 127.0.0.1:1337
Content-Type: application/json
U-ApiKey: 21ddb3bc-11d8-42d8-8123-b1b7cb192a97
Connection: close


1
2
3
4
5
6
7
8
9
HTTP/1.1 200 OK
X-Powered-By: Express
Content-Type: application/json; charset=utf-8
Content-Length: 32
ETag: W/"20-f7813bee"
Date: Sun, 03 May 2015 03:42:47 GMT
Connection: close

{"value":4000,"nodeid":7,"hubid":1}

删除数据点

delete-datapoint
向服务器请求删除某个枢纽下某个节点的某个数据点 (Datapoint)
请求方式
DELETE
HTTP请求方法
URL:
  • /v1.0/hub/<hub_id>/node/<node_id>/datapoint/<key> HTTP/1.1
参数列表
参数名 是否必须 描述
<hub_id> 必须 某个枢纽的ID号(该参数包含在URL中)
<node_id> 必须 节点的ID号(该参数包含在URL中)
<key> 必须 数据点时间戳(该参数包含在URL中)
返回值列表
类型 描述
无返回值
代码示例
HTTP请求报文 HTTP返回报文
1
2
3
4
5
6
7
DELETE /v1.0/hub/1/node/2/datapoint/2015-03-07T09:10:00 HTTP/1.1
Host: 127.0.0.1:1337
User-Agent: Fiddler
Content-Type: application/json
U-ApiKey: 21ddb3bc-11d8-42d8-8123-b1b7cb192a97


1
2
3
4
5
6
7
HTTP/1.1 200 OK
X-Powered-By: Express
Date: Wed, 29 Apr 2015 19:06:37 GMT
Connection: keep-alive
Transfer-Encoding: chunked

0

历史数据

HISTORY
coolpy提供查询过去一段时间内上传过的数据功能,可以查看指定时间段或指定间隔时间的历史数据
请求方式
GET
HTTP请求方法
URL:
  • /v1.0/hub/<hub_id>/node/<node_id>/json?start=<start_timestamp>&end=<end_timestamp>&interval=<interval>&page=<page> HTTP/1.1
数值型数据 参数列表
参数名 是否必须 描述
<hub_id> 必须 某个枢纽的ID号(该参数包含在URL中)
<node_id> 必须 节点的ID号(该参数包含在URL中)
start_timestamp 必须 开始时间,格式:2014-5-10T11:40:10(该参数包含在URL中)
end_timestamp 必须 结束时间,格式:2014-5-15T11:40:50(该参数包含在URL中)
interval 必须 指定间隔时间(该参数包含在URL中)
page 必须 分页,默认是1(该参数包含在URL中)
interval(数据采样间隔)说明
Interval 描述
1 每秒
10 10秒
返回值列表
参数名 描述
value 数据值
timestamp 数据点添加的时间戳(仅数值型和GPS型返回)
key 自定义型数据(仅通用型返回)
代码示例
HTTP请求报文
1
2
3
4
5
6
7
GET /v1.0/hub/1/node/1/json?start=2014-12-31T08:20:14&end=2014-12-31T08:23:14&interval=1&page=1 HTTP/1.1
User-Agent: Fiddler
Content-Type: application/json
U-ApiKey: 21ddb3bc-11d8-42d8-8123-b1b7cb192a97
Host: 127.0.0.1:1337


HTTP返回报文
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
HTTP/1.1 200 OK
X-Powered-By: Express
Content-Type: application/json; charset=utf-8
Content-Length: 361
ETag: W/"169-67c61401"
Date: Wed, 29 Apr 2015 19:56:01 GMT
Connection: keep-alive

[
{"timestamp":"2014-12-31T08:20:14",
"value":{"lat":28.301673,"lng":109.753071,"speed":30}},
{"timestamp":"2014-12-31T08:21:14",
"value":{"lat":28.281316,"lng":110.318788,"speed":30}},
{"timestamp":"2014-12-31T08:22:14",
"value":{"lat":28.647132,"lng":111.215656,"speed":30}},
{"timestamp":"2014-12-31T08:23:14",
"value":{"lat":28.946952,"lng":111.634195,"speed":30}}
]
通过用户名和密码获取API Key
请求方式
GET
HTTP请求方法
URL:
  • /v1.0/user/apikey?username=<username>&pass=<pass> HTTP/1.1
参数列表
参数名 是否必须 描述
<username> 必须 用户名
<pass> 必须 密码
返回值列表
类型 描述
errcode 0或1,0代表获取成功;1代表用户名或密码错误
errmsg 错误信息
apikey U-ApiKey代表了用户的身份,每次API的请求都必须将该授权信息放入请求头中
代码示例
HTTP请求报文 HTTP返回报文
1
2
3
4
5
GET /v1.0/user/apikey?username=bbb&pass=123 HTTP/1.1
Host: 127.0.0.1:1337


1
2
3
4
5
6
7
8
9
10
11
HTTP/1.1 200 OK
X-Powered-By: Express
Content-Type: application/json; charset=utf-8
Content-Length: 79
ETag: W/"4f-d857d4c1"
Date: Wed, 29 Apr 2015 19:36:37 GMT
Connection: keep-alive

{"errcode":"0",
"errmsg":"pass",
"apikey":"21ddb3bc-11d8-42d8-8123-b1b7cb192a97"}

模拟请求

PUTDEL
对于不支持PUT、DELETE请求的枢纽,可以通过POST、GET方式模拟实现
通过GET操作模拟DELETE请求,通过POST操作模拟PUT请求
method=put(模拟PUT请求)
method=delete(模拟DELETE请求)
示例:
  • GET /v1.0/hub/12/node/3?method=put HTTP/1.1
  • GET /v1.0/hub/12/node/3?method=delete HTTP/1.1
模拟DELETE请求代码示例
HTTP请求报文 HTTP返回报文
1
2
3
4
5
6
7
8
GET /v1.0/hub/1/node/1/datapoint/2014-12-31T
08:20:14?method=delete  HTTP/1.1
Host: 127.0.0.1:1337
User-Agent: Fiddler
Content-Type: application/json
U-ApiKey: 21ddb3bc-11d8-42d8-8123-b1b7cb192a97


1
2
3
4
5
6
7
8
HTTP/1.1 200 OK
X-Powered-By: Express
Date: Wed, 29 Apr 2015 20:11:20 GMT
Connection: keep-alive
Transfer-Encoding: chunked

0

模拟PUT请求代码示例
HTTP请求报文 HTTP返回报文
1
2
3
4
5
6
7
8
9
POST /v1.0/hub/1/node/1/datapoint/2015-06-26T21:39:11?method=put HTTP/1.1
Host: 127.0.0.1:1337
User-Agent: Fiddler
Content-Type: application/json
U-ApiKey: 5629fb5f-6b0d-4c7b-b408-1d663451ec68
Content-Length: 16

{ "value":154.0}
1
2
3
4
5
6
7
8
9
HTTP/1.1 200 OK
X-Powered-By: Express
Date: Wed, 29 Apr 2015 20:11:20 GMT
Connection: keep-alive
Transfer-Encoding: chunked

0

Ctrl + Q 可以打开搜索框