RESTfulAPI和在物联网上移动数据

我们讨论了物联网(物联网)是一种分散的通信方式,研究了Mesh网络如何消除实现Industry4.0的许多障碍。一旦设备有了强大的通信媒介,下一个挑战就是让所有设备都能说一种通用语言。
设备之间交换数据和发送命令的一种日益流行的机制是一种称为RESTfulAPI的框架。首先,让我们把缩略语拼出来。REST代表具象状态传输,API代表应用程序编程接口。对于那些认为自己是硬件而不是软件或web开发人员的人来说,让我们探索一种在嵌入式电子环境中理解REST和API的可能过于简单化的方法。让我们从API开始。API是由许多Web服务发布的一种软件机制,作为第三方开发人员以可控和定义良好的方式与系统安全交互的一种方式。例如,如果您曾经使用过第三方twitter应用程序,那么您就间接地利用了twitter api。
REST是一种机制,通过这种机制,启用互联网的设备可以通过来回传输看似统一的资源定位器(URL)(如http://www.google.com)与其他设备或服务器通信。在不太挑剔的情况下,许多流行的基于REST的物联网开发平台API中的文档通过统一资源标识符(UniformResource标识符或URI)的更合适的技术标题来引用这些API。
好吧,让我们把这个变成现实。假设我们想要创建一个网站。在这个网站上,我们想要创建一个表单,让我们可以远程切换一个LED在互联网上的开关。
下面的代码片段为我们提供了POST方法格式化的概念:
 
<form action="https://api.particle.io/v1/devices/YOUR_DEVICE_ID/led?access_token=MY_ACCESS_TOKEN" method="POST" target="placeholder">
告诉你的设备该做什么!

    <br>
    <input type="radio" name="args" value="on">Turn the LED on.
    <br>
    <input type="radio" name="args" value="off">Turn the LED off.
    <br>
    <input type="submit" value="Do it!">

</form>
 
通知方法=“POST”。这是RESTfulAPI利用的HTTP方法的一个例子。其他方法包括GET、PUT、修补程序和DELETE。在许多提供RESTfulAPI的物联网嵌入式设备中,POST和GET方法可能是最常用的两种方法。POST方法用于将数据推送到Web服务器,GET是从Web服务器请求数据的方法。因此,在我们上面的例子中,POST方法是一种机制,通过这种机制,最终用户对网站表单的单击被发送到Web服务器,而Web服务器又向物联网设备发出适当的命令。
那GET请求呢?假设我们是连接到执行器的端点设备。我们执行机械动作的决定取决于远处的温度。在这种情况下,端点将通过GET方法请求存储在Web服务器上的温度值。
下面的代码片段为我们提供了GET方法格式的概念:
 
WiFiClient客户端;
Const char DeviceToken[]=“my_id_Token”;
Const字符串httpRequest 1=“get/api/v1.6/devices/Arduino101_MBA/temperature/values?page_size=1&token=”;
Const字符串httpRequest2=“HTTP/1.1\r\n”
“主机:Things.ubidots.com\r\n”
“连接:关闭\r\n”;

 
对于所有意图和目的,我们正在创建巧尽心思构建的字符串,将通过设备的Wi-Fi连接到Web服务器。字符串是Web服务器识别的GET请求,然后将用字符串中的数据进行响应,这些数据必须由端点解析。轻量级数据交换格式(如JavaScript对象标记(JSON)是在响应GET请求时从服务器向客户端发送信息的首选方法。许多嵌入式平台都有JSON库来帮助解析。
在下面的代码片段中,字符串变量行将保存服务器将在GET请求被远程处理后发送回的JSON数据包。
 
字符串行=“;
client.print(httpRequest1+DeviceToken+httpRequest2);
延迟(500);
 
When(client.Connected(){
line.conat(client.readStringUntil(‘\n’);
 }

 
为了提取传递给执行器端点的Web服务器的温度值,必须解析此字符串。
在硬件工程师试图描述REST的时候,可能有很多软件和Web开发人员都在读这篇文章。对于其他嵌入式工程师来说,要点是要理解RESTfulAPI正在迅速成为物联网设备通信的首选方法,因为它们具有高度灵活性、可伸缩性、可移植性、能够处理多种数据交换格式,可以说比简单对象访问协议(SimpleObjectAccessProtocol,SOAP)等替代方案更易于开发和提供更好的性能。简而言之,嵌入式工程师和固件开发人员至少应该具备这项技术的工作知识。在与从事相关移动和网络应用的同事进行设计讨论时,这种理解将被证明是有用的。这将有助于确保产品从固件到云和移动应用程序的安全性和互操作性。

用户喜欢...