转:https://open.iot.10086.cn/bbs/thread-1041-1-1.html
OneNET提供了丰富的API接口,API的典型应用场景为业务应用(第三方平台)与平台进行数据交互/资源管理时使用
如下图所示:
第三方平台在调用API的时候,实际进行两个步骤:
Step1: 与OneNET HTTP服务器建立TCP连接;
Step2: 按照API文档中包格式说明,发送满足改格式的HTTP报文。
实际上,任何一个TCP client(例如:pc的TCP调试软件,wifi模块,GPRS模块等)均可以完成上述步骤。
也就是说,一般的终端,也可以通过上述两个步骤来使用API接口;API可以作为一种特殊的设备接入协议存在,而不仅仅限于第三方平台的交互工具。
需要注意的是,API可以实现的功能主要为:
1、 数据点的上传与查询
2、 平台资源的管理,包括 设备、数据流、触发器等
3、 发送命令给某一知道设备ID的设备
注意:并不具有接收平台下发命令的功能
像前面所提到的那样,HTTP API 并非是为设备接入而设计的,所以在功能上可能会与设备侧的需求有所出入,用户在进行协议选择的时候,请充分考虑这一点。
API提供的强大的功能,而且在很多协议使用的时候,也经常会涉及到API的使用。
接下来我们将通过2个例子向大家详细介绍一下API的使用方法,希望能帮助大家理解如下这些问题:
1、 URL如何填写?
2、 HTTP头部和URL参数如何填写?
3、 设备端如何调用API,如何组包?
例1:设备注册
本例中,我们将使用 fiddler HTTP调试工具调用设备注册的API(在批量设备接入的时候会经常用到)
本API中涉及到,URL,URL参数,HTTP内容的使用方法:
step1: 打开fiddler工具,填写相关参数,如下图所示:
step2: 点击execute,点击左侧的执行结果,查看API调用结果
step3: 选择顶部的查看方式按键,选择raw即可以看到完整的发送与接收的报文
可以看到,这里发送的实际报文的格式为:
- POST http://api.heclouds.com/register_de?register_code=cba89peVvQ7p28sD HTTP/1.1
- Host: api.heclouds.com
- Con**-Length: 44
- {"sn": "20160909001","title": "myedpdevice"}
复制代码
此格式也就是我们使用TCP客户端需要发送的完整HTTP报文格式。
注意:
1、 Host: api.heclouds.com
Con**-Length: 44
此两行为fiddler工具自动补充的,Con**-Length: 44其中的44为HTTP内容({"sn": "20160909001","title": "myedpdevice"})整个字段的长度
2、 Con**-Length: 44其后有两个回车换行符
我们使用TCP测试工具进行确认: TCPUDPDebug_Setup_1.032.rar (1020.93 KB, 下载次数: 473)
step1: 与 api.heclouds.com :80 建立连接
step2: 将fiddler中得到的代码,复制到发送框中,点击发送
这里可以看到,通过组织完整的HTTP报文,可以在一个简单的TCP client上,通过发送报文给OneNET HTTP服务器(api.heclouds.com:80)来完成API的调用,而fiddler 工具可以帮助我们快速的验证API,以及确定正确的HTTP报文的格式。
本例中涉及到的API详解请参考 设备批量创建说明
例2: 数据点查询
本例中,我们将利用数据点查询API来完善说明部分API的使用
API格式如下:
本API中涉及到,URL,URL参数,HTTP头部的使用方法:
step1: 同上例,首先在fiddler中填写相关参数
step2: 点击execute,点击左侧的执行结果,查看API调用结果
其完整的HTTP报文为:
- GET http://api.heclouds.com/devices/3420352/datap**?datastream_id=loc&limit=10 HTTP/1.1
- api-key: LOTJps=fkcUUgxaQX37uFjmkOis=
- Host: api.heclouds.com
复制代码
注意,Host: api.heclouds.com其后有两个回车换行符
按照例1中的方法,可以在TCP client中发送该报文,得到的结果为:
本文演示了如何在一个TCP client上来完成API的调用,在fiddler工具的辅助下,我们可以快速确定HTTP报文的形式,通过
Step1: 与OneNET HTTP服务器建立TCP连接;
Step2: 按照API文档中包格式说明,发送满足改格式的HTTP报文。
这两个步骤,可以在任何设备上使用API。