Appearance
入门介绍 ¶
HTTP 基础知识 ¶
HTTP是一种通用网络协议,可用于物联网应用程序。HTTP 协议基于 TCP,并使用请求-响应模型。
ThingsKit 服务器节点充当支持 HTTP 和 HTTPS 协议的 HTTP 服务器。
对于一些非常单一的应用场景,比如只需要定期采集上报数据,不论是快速开发原型,还是小规模的应用,设备使用 HTTP 接入云平台也是不错的选择。
事实上,将 HTTP 协议的简单易用发挥到极致,便是 CoAP 协议,对于低功耗设备的单一数据上报,使用 CoAP 更加符合要求。
HTTP 身份验证和错误代码 ¶
我们将在本文中使用访问令牌设备凭证,稍后将它们称为**$ACCESS_TOKEN**。应用程序需要在每个 HTTP 请求中包含**$ACCESS_TOKEN**作为路径参数。可能的错误代码及其原因:
400 无效请求 - 无效的 URL、请求参数或正文。
401 未经授权- 无效的**$ACCESS_TOKEN**。
404 未找到- 未找到资源。
遥测数据上传接口 ¶
为了将遥测数据发布到 ThingsKit 服务器节点,请向以下 URL 发送 POST 请求:
http(s)://服务端IP或域名:服务端端口/api/v1/设备访问令牌/telemetry
1
最简单的支持数据格式是:
{"key1":"value1", "key2":"value2"}
1
或者
[{"key1":"value1"}, {"key2":"value2"}]
1
请注意,在这种情况下,服务器端时间戳将分配给上传的数据!
如果您的设备能够获取客户端时间戳,您可以使用以下格式:
{"ts":1451649600512, "values":{"key1":"value1", "key2":"value2"}}
1
调用控制接口 ¶
服务器端 RPC ¶
为了从服务器订阅 RPC 命令,发送带有可选“timeout”请求参数的 GET 请求到以下 URL:
http(s)://host:port/api/v1/$ACCESS_TOKEN/rpc
1
一旦订阅,如果没有对特定设备的请求,客户端可能会收到 rpc 请求或超时消息。RPC 请求体示例如下所示:
{
"id": "1",
"method": "setGpio",
"params": {
"pin": "23",
"value": 1
}
}
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
- id - 请求id,整数请求标识符;
- method - RPC 方法名称,字符串;
- params - RPC 方法参数,自定义 json 对象。