你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

IoT 中心 REST

IoT 中心的 REST API 提供对设备、消息传送、作业服务以及资源提供程序的编程访问IoT 中心。 可以从在 Azure 中运行的 IoT 服务访问消息服务,或者直接通过 Internet 从任何可以发送 HTTPS 请求和接收 HTTPS 响应的应用程序访问。

服务

  • 使用此 API 管理IoT 中心设备孪生。 可以检索和更新设备孪生属性,并在设备上调用 直接方法
  • 使用这些 API 管理 IoT 中心的标识注册表中的设备标识。
  • 使用这些 API 管理 IoT 中心 中的作业。 可以计划、取消或获取作业。

所有任务操作都符合 HTTP/1.1 协议规范,每个操作返回 x-ms-request-id 可用于获取请求相关信息的标头。 请务必确保对这些资源发出的请求都是安全的。 有关详细信息,请参阅IoT 中心开发人员指南 - 安全性,详细了解如何创建安全令牌。

设备消息传送

从设备使用这些 API 将设备到云的消息发送到 IoT 中心,并从 IoT 中心接收云到设备的消息。 所有任务操作都符合 HTTP/1.1 协议规范。 请务必确保对这些资源发出的请求都是安全的。 有关详细信息,请参阅 IoT 中心 开发人员指南 - 安全性,了解有关如何创建安全令牌的特定信息。

资源提供程序

使用这些 API 管理IoT 中心资源的部署。 有关如何保护这些请求的信息,请参阅 Azure REST API 参考

常见参数和标头

以下信息是与IoT 中心相关的所有任务的通用信息:

  • 将 {api-version} 替换为 URI 中的“2018-06-30”。

  • 在 URI 中将 {subscription-id} 替换为你的订阅标识符。

  • 将 {resourceGroupName} 替换为包含 (或将包含 ioT 中心) 的资源组名称。

  • 将 {IoTHubName} 替换为 IoT 中心的名称。

  • 将 Content-Type 表头设置为 application/json。

  • 将 Authorization 标头设置为使用安全令牌IoT 中心安全令牌部分中指定的 SAS 令牌

  • 根据 RFC7232,Etag 标头在范围限定为单个设备标识的所有请求中返回。

  • 所有 PUT/PATCH 操作都需要指定以下标头: If-Match = [*|<etag from get>]

  • DELETE 操作可能包括以下标头: If-Match = [*|<etag from get>]

ETag 的行为如下所示:

PUT 资源不存在 资源存在
If-Match = “” / absent 201 Created 200 正常
If-Match = “*” 412 前提失败 200 正常
If-Match = “xyz” 412 前提失败 200 正常/412 前置条件失败
If-None-Match = “*” 201 Created 412 前提失败
DELETE 资源不存在 资源存在
If-Match = “” / absent 204 无内容 200 正常
If-Match = “*” 204 无内容 200 正常
If-Match = “xyz” 204 无内容 200 正常/412 前置条件失败

对于异步调用:

  • 对于任何异步操作,PUT 响应 201 Created 和 Azure-AsyncOperation 标头。 所有同步 (更新) 操作返回 200 正常。

  • DELETE 返回 202 Accepted,其中包含 Location 和 Retry-After 标头以及存在的资源的 Azure-AsyncOperation 标头。

  • 位置标头包含操作结果的 URL

  • Retry-After 标头包含适当的重试间隔(以秒为单位)

  • Azure-AsyncOperation 标头包含异步操作结果状态的 URL

  • 完成后,操作结果 URL 的 GET 将生成与原始操作同步完成完全相同的结果