3. WebAPI

SIoT提供了一系列的WebAPI,供用户调用。一些不支持MQTT的编程语言,如VB、S4A等,可以通过HTTP的形式和SIoT进行互动。

需要强调的是,HTTP的请求/应答方式的会话都是客户端发起的,缺乏服务器通知客户端的机制,如果要获取服务器信息,客户端应用需要不断地轮询服务器。这也就是在物联网方面,MQTT比HTTP更受欢迎的原因。

3.1. API列表:

这里的账号密码为默认的siot和dfrobot,如果您曾修改过账号或密码,这里的iname或ipwd也需要相应的修改。
  • 发布消息

Http://[SIoT的IP]:8080/publish?topic=xzr/001&msg=on&iname=siot&ipwd=dfrobot

说明:向topicid(主题)“xzr/001”发送内容为“on”的消息,其中“xzr”是项目id,“001”是设备id。

返回数据:{"code":1,"msg":"数据已发送"}

  • 获取最新数据

Http://[SIoT的IP]:8080/lastmessage?topic=xzr/001&iname=siot&ipwd=dfrobot

说明:获取topicid(主题)“xzr/001”的最新一条消息

返回数据:{"code":1,"data":[{"ID":27,"Topic":"xzr/001","Content":"11","Created":"2019-06-06 11:55:39"}],"msg":"成功"}

  • 获取消息列表

Http://[SIoT的IP]:8080/messages?topic=xzr/001&iname=siot&ipwd=dfrobot&pnum=1&psize=10&begin=2019-04-04 00:00:00&end=2019-07-01 00:00:00

Http://[SIoT的IP]:8080/messages?topic=xzr/001&iname=siot&ipwd=dfrobot&pnum=1&psize=10&begin=2019-04-04&end=2019-07-01

说明:获取topicid(主题)“xzr/001”从“2019-04-04”到“2019-07-01”的数据。其中时间可以省略。

返回数据:{"code":1,"data":[{"ID":26,"Topic":"xzr/001","Content":"10","Created":"2019-06-06 11:55:33"},{"ID":27,"Topic":"xzr/001","Content":"11","Created":"2019-06-06 11:55:39"}],"msg":"成功"}

  • 清除消息

Http://[SIoT的IP]:8080/clearmsg?topic=xzr/001&iname=siot&ipwd=dfrobot

说明:删除topicid(主题)“xzr/001”的所有消息

返回数据:{"code":1,"data":4,"msg":"成功清空消息"}

  • 获取项目列表

Http://[SIoT的IP]:8080/projects?iname=siot&ipwd=dfrobot

说明

返回数据:"code":1,"data":[{"ID":"DFRobot","Description":"一个项目中包含多个设备t","Created":1556265411},{"ID":"abc","Description":"","Created":1556939389},{"ID":"xzr","Description":"","Created":1556941184}],"msg":"成功"}

  • 更新项目

Http://[SIoT的IP]:8080/updateprj?pid=xzr&iname=siot&ipwd=dfrobot&desc=科学测量

说明:将名称为“xzr”的项目的备注修改为“科学测量”

返回数据: {"code":1,"msg":"成功"}

  • 获取设备列表

Http://[SIoT的IP]:8080/devices?pid=xzr&iname=siot&ipwd=dfrobot

说明:返回项目名称为“xzr”的设备列表。

  • 更新设备

Http://[SIoT的IP]:8080/updatedev?pid=xzr&dname=001&iname=siot&ipwd=dfrobot&desc=台灯控制

说明:将项目名称为“xzr”,设备名称为“001”的设备,备注修改为“台灯控制”(发现BUG)

{"code":1,"msg":"成功"}

  • 删除设备

Http://[SIoT的IP]:8080/deldev?topic=xzr/001&iname=siot&ipwd=dfrobot

说明

返回数据:{"code":1,"msg":"删除成功"}

3.2. 返回数据的通用格式说明:

{

code = 1, message = "", data = {}

}

说明:code等于1,表示成功。data中返回列表信息。