华为云用户手册

  • 响应参数 状态码: 201 表5 响应Body参数 参数 参数类型 描述 rule_id String 规则触发条件ID,用于唯一标识一个规则触发条件,在创建规则条件时由 物联网平台 分配获得。 rule_name String 用户自定义的规则名称。 最小长度:1 最大长度:256 description String 用户自定义的规则描述。 最小长度:1 最大长度:256 subject RoutingRuleSubject object 资源事件信息,即资源变化事件。 app_type String 租户规则的生效范围,取值如下: GLOBAL:生效范围为租户级 APP:生效范围为资源空间级。 app_id String 资源空间ID select String 用户自定义sql select语句,最大长度2500,该参数仅供标准版和企业版用户使用。 最小长度:0 最大长度:2500 where String 用户自定义sql where语句,最大长度2500,该参数仅供标准版和企业版用户使用。 最小长度:0 最大长度:2500 active Boolean 规则条件的状态是否为激活。 表6 RoutingRuleSubject 参数 参数类型 描述 resource String 参数说明:资源名称。 取值范围: device:设备。 device.property:设备属性。 device.message:设备消息。 device.message.status:设备消息状态。 device.status:设备状态。 batchtask:批量任务。 product:产品。 device.command.status:设备异步命令状态。 最小长度:1 最大长度:50 event String 参数说明:资源事件。 取值范围:与资源有关,不同的资源,事件不同。event需要与resource关联使用,具体的“resource:event”映射关系如下: device:create(设备添加) device:delete(设备删除) device:update(设备更新) device.status:update (设备状态变更) device.property:report(设备属性上报) device.message:report(设备消息上报) device.message.status:update(设备消息状态变更) batchtask:update (批量任务状态变更) product:create(产品添加) product:delete(产品删除) product:update(产品更新) device.command.status:update(设备异步命令状态更新) 最小长度:1 最大长度:50
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 否 String 参数说明:用户Token。通过调用 IAM 服务获取。 最小长度:0 最大长度:1024000 Instance-Id 否 String 参数说明:实例ID。物理多租下各实例的唯一标识,建议携带该参数,在使用专业版时必须携带该参数。您可以在IoTDA管理控制台界面,选择左侧导航栏“总览”页签查看当前实例的ID,具体获取方式请参考查看实例详情 。 最小长度:0 最大长度:36
  • URI GET /v5/iot/{project_id}/apps/{app_id} 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 参数说明:项目ID 最小长度:0 最大长度:32 app_id 是 String 参数说明:资源空间ID,唯一标识一个资源空间,由物联网平台在创建资源空间时分配。资源空间对应的是物联网平台原有的应用,在物联网平台的含义与应用一致,只是变更了名称。 取值范围:长度不超过36,只允许字母、数字、下划线(_)、连接符(-)的组合。
  • 响应参数 状态码: 200 表3 响应Body参数 参数 参数类型 描述 app_id String 资源空间ID,唯一标识一个资源空间,由物联网平台在创建资源空间时分配。资源空间对应的是物联网平台原有的应用,在物联网平台的含义与应用一致,只是变更了名称。 最小长度:1 最大长度:64 app_name String 资源空间名称。 最小长度:1 最大长度:64 create_time String 资源空间创建时间,格式:yyyyMMdd'T'HHmmss'Z',如20151212T121212Z。 最小长度:1 最大长度:64 default_app Boolean 是否为默认资源空间
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 否 String 参数说明:用户Token。通过调用IAM服务获取IAM用户Token接口获取,接口返回的响应消息头中“X-Subject-Token”就是需要获取的用户Token。简要的获取方法样例请参见 Token认证。 Instance-Id 否 String 参数说明:实例ID。物理多租下各实例的唯一标识,一般华为云租户无需携带该参数,仅在物理多租场景下从管理面访问API时需要携带该参数。您可以在IoTDA管理控制台界面,选择左侧导航栏“总览”页签查看当前实例的ID。
  • URI DELETE /v5/iot/{project_id}/routing-rule/backlog-policy/{policy_id} 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 参数说明:项目ID。获取方法请参见 获取项目ID 。 policy_id 是 String 参数说明:数据流转积压策略id,用于唯一标识一个数据流转积压策略,在创建数据流转积压策略时由物联网平台分配获得。
  • 请求示例 设备删除通知示例: 设备删除通知 { "resource" : "device", "event" : "delete", "event_time" : "20151212T121212Z", "event_time_ms" : "2015-12-12T12:12:12.000Z", "request_id" : "3fe58d5e-8697-4849-a165-7db128f7e776", "notify_data" : { "header" : { "device_id" : "d4922d8a-6c8e-4396-852c-164aefa6638f", "product_id" : "ABC123456789", "app_id" : "d4922d8a-6c8e-4396-852c-164aefa6638f", "gateway_id" : "d4922d8a-6c8e-4396-852c-164aefa6638f", "node_id" : "ABC123456789", "tags" : [ { "tag_value" : "testTagValue", "tag_key" : "testTagName" } ] } } }
  • 请求参数 表1 请求Body参数 参数 是否必选 参数类型 描述 resource 是 String 参数说明:订阅的资源名称,取值为device。 event 是 String 参数说明:订阅的资源事件,取值为delete。 event_time 是 String 参数说明:资源事件生成时间,格式:yyyyMMdd'T'HHmmss'Z' UTC字符串,如:20151212T121212Z。若需要显示本地时区,您需要自己进行时间转换。 event_time_ms 否 String 参数说明:资源事件生成时间,格式:yyyy-MM-dd'T'HH:mm:ss.SSS'Z' UTC字符串,如:2015-12-12T12:12:12.000Z。若需要显示本地时区,您需要自己进行时间转换。 request_id 否 String 参数说明:消息ID,由设备侧指定或平台生成,用于跟踪业务流程。 notify_data 是 DeviceDeleteNotifyData object 参数说明:推送消息。 表2 DeviceDeleteNotifyData 参数 是否必选 参数类型 描述 header 是 NotifyDataHeader object 参数说明:推送消息header。 表3 NotifyDataHeader 参数 是否必选 参数类型 描述 app_id 否 String 参数说明:应用ID。 最大长度:256 device_id 否 String 参数说明:设备ID,用于唯一标识一个设备,在注册设备时由物联网平台分配获得。 最大长度:256 node_id 否 String 参数说明:设备标识码,通常使用IMEI、MAC地址或Serial No作为nodeId。 最大长度:256 product_id 否 String 参数说明:产品ID,用于唯一标识一个产品,在注册产品时由物联网平台分配获得。 最大长度:256 gateway_id 否 String 参数说明:网关ID,用于标识一个网关设备。当设备是直连设备时,gatewayId与设备的deviceId一致。当设备是非直连设备时,gatewayId为设备所关联的直连设备(即网关)的deviceId。 最大长度:256 tags 否 Array of TagV5DTO objects 参数说明:要绑定到指定资源的标签列表,标签列表中各项标签键值之间不允许重复,一个资源最多可以绑定10个标签。 表4 TagV5DTO 参数 是否必选 参数类型 描述 tag_key 是 String 参数说明:标签键,在同一资源下标签键唯一。绑定资源时,如果设置的键已存在,则将覆盖之前的标签值。如果设置的键值不存在,则新增标签。 tag_value 否 String 参数说明:标签值。
  • 示例 Topic: $oc/devices/{device_id}/sys/events/up 数据格式: { "object_device_id": "{object_device_id}", "services": [{ "service_id": "$time_sync", "event_type": "time_sync_request", "event_time": "20151212T121212Z", "paras": { "device_send_time": 1582685678789 } }] }
  • 响应示例 状态码: 200 Successful response { "app_id" : "jeQDJQZltU8iKgFFoW060F5SGZka", "app_name" : "testAPP01", "product_id" : "5ba24f5ebbe8f56f5a14f605", "name" : "Thermometer", "device_type" : "Thermometer", "protocol_type" : "MQTT", "data_format" : "json", "manufacturer_name" : "ABC", "industry" : "smartCity", "description" : "this is a thermometer produced by Huawei", "service_capabilities" : [ { "service_id" : "temperature", "service_type" : "temperature", "properties" : [ { "property_name" : "temperature", "required" : true, "data_type" : "decimal", "enum_list" : null, "min" : "1", "max" : "100", "max_length" : 100, "step" : 0.1, "unit" : "centigrade", "method" : "RW", "description" : "force", "default_value" : { "color" : "red", "size" : 1 } } ], "commands" : [ { "command_name" : "reboot", "paras" : [ { "para_name" : "force", "required" : false, "data_type" : "string", "enum_list" : null, "min" : "1", "max" : "100", "max_length" : 100, "step" : 0.1, "unit" : "km/h", "description" : "force" } ], "responses" : [ { "response_name" : "ACK", "paras" : [ { "para_name" : "force", "required" : false, "data_type" : "string", "enum_list" : null, "min" : "1", "max" : "100", "max_length" : 100, "step" : 0.1, "unit" : "km/h", "description" : "force" } ] } ] } ], "events" : [ { "event_type" : "reboot", "paras" : [ { "para_name" : "force", "required" : false, "data_type" : "string", "enum_list" : null, "min" : "1", "max" : "100", "max_length" : 100, "step" : 0.1, "unit" : "km/h", "description" : "force" } ] } ], "description" : "temperature", "option" : "Mandatory" } ], "create_time" : "20190303T081011Z" }
  • 响应参数 状态码: 200 表4 响应Body参数 参数 参数类型 描述 app_id String 资源空间ID。 app_name String 资源空间名称。 product_id String 产品ID,用于唯一标识一个产品,在物联网平台创建产品后由平台分配获得。 name String 产品名称。 device_type String 设备类型。 protocol_type String 设备使用的协议类型。取值范围:MQTT,CoAP,HTTP,HTTPS,Modbus,ONVIF, OPC-UA,OPC-DA,Other。 data_format String 设备上报数据的格式,取值范围:json,binary。 manufacturer_name String 厂商名称。 industry String 设备所属行业。 description String 产品的描述信息。 service_capabilities Array of ServiceCapability objects 设备的服务能力列表。 create_time String 在物联网平台创建产品的时间,格式:yyyyMMdd'T'HHmmss'Z',如20151212T121212Z。 表5 ServiceCapability 参数 参数类型 描述 service_id String 参数说明:设备的服务ID。注:产品内不允许重复。 取值范围:长度不超过64,只允许中文、字母、数字、以及_?'#().,&%@!-$等字符的组合。 service_type String 参数说明:设备的服务类型。 取值范围:长度不超过64,只允许中文、字母、数字、以及_?'#().,&%@!-$等字符的组合。 properties Array of ServiceProperty objects 参数说明:设备服务支持的属性列表。 取值范围:数组长度大小不超过500。 commands Array of ServiceCommand objects 参数说明:设备服务支持的命令列表。 取值范围:数组长度大小不超过500。 events Array of ServiceEvent objects 参数说明:设备服务支持的事件列表。目前暂未支持自定义事件,创建/修改产品时无需定义该字段。 取值范围:数组长度大小不超过500。 description String 参数说明:设备服务的描述信息。 取值范围:长度不超过128,只允许中文、字母、数字、空白字符、以及_?'#().,;&%@!- ,、:;。¥$!【】’‘“”()?…~/等字符的组合。 option String 参数说明:指定设备服务是否必选。目前本字段为非功能性字段,仅起到标识作用。 取值范围: Master:主服务 Mandatory:必选服务 Optional:可选服务 默认值为Optional。 缺省值:Optional 表6 ServiceProperty 参数 参数类型 描述 property_name String 参数说明:设备属性名称。注:设备服务内不允许重复。属性名称作为设备影子JSON文档中的key不支持特殊字符:点(.)、dollar符号($)、空char(十六进制的ASCII码为00),如果包含了以上特殊字符则无法正常刷新影子文档。 取值范围:长度不超过64,只允许中文、字母、数字、以及_?'#().,&%@!-等字符的组合。 data_type String 参数说明:设备属性的数据类型。 取值范围:int,long,decimal,string,DateTime,jsonObject,enum,boolean,string list。 required Boolean 参数说明:设备属性是否必选。默认为false。 缺省值:false enum_list Array of strings 参数说明:设备属性的枚举值列表。 min String 参数说明:设备属性的最小值。 取值范围:长度1-16。 最小长度:1 最大长度:16 max String 参数说明:设备属性的最大值。 取值范围:长度1-16。 最小长度:1 最大长度:16 max_length Integer 参数说明:设备属性的最大长度。 step Double 参数说明:设备属性的步长。 unit String 参数说明:设备属性的单位。 取值范围:长度不超过16。 最大长度:16 method String 参数说明:设备属性的访问模式。 取值范围:RWE,RW,RE,WE,E,W,R。 R:属性值可读 W:属性值可写 E:属性值可订阅,即属性值变化时上报事件 description String 参数说明:设备属性的描述。 取值范围:长度不超过128,只允许中文、字母、数字、空白字符、以及_?'#().,;&%@!- ,、:;。¥$!【】’‘“”()?…~/等字符的组合。 default_value Object 参数说明:设备属性的默认值。如果设置了默认值,使用该产品创建设备时,会将该属性的默认值写入到该设备的设备影子预期数据中,待设备上线时将该属性默认值下发给设备。 表7 ServiceCommand 参数 参数类型 描述 command_name String 参数说明:设备命令名称。注:设备服务内不允许重复。 取值范围:长度不超过64,只允许中文、字母、数字、以及_?'#().,&%@!-等字符的组合。 paras Array of ServiceCommandPara objects 参数说明:设备命令的参数列表。 responses Array of ServiceCommandResponse objects 参数说明:设备命令的响应列表。 表8 ServiceCommandResponse 参数 参数类型 描述 response_name String 参数说明:设备命令响应名称。 取值范围:长度不超过128,只允许中文、字母、数字、以及_?'#().,&%@!-等字符的组合。 paras Array of ServiceCommandPara objects 参数说明:设备命令响应的参数列表。 表9 ServiceEvent 参数 参数类型 描述 event_type String 参数说明:设备事件类型。注:设备服务内不允许重复。 取值范围:长度不超过32,只允许中文、字母、数字、以及_?'#().,&%@!-等字符的组合。 paras Array of ServiceCommandPara objects 参数说明:设备事件的参数列表。 表10 ServiceCommandPara 参数 参数类型 描述 para_name String 参数说明:参数的名称。 取值范围:长度不超过32,只允许中文、字母、数字、以及_?'#().,&%@!-等字符的组合。 data_type String 参数说明:参数的数据类型。 取值范围:int,long,decimal,string,DateTime,jsonObject,enum,boolean,string list。 required Boolean 参数说明:参数是否必选。默认为false。 缺省值:false enum_list Array of strings 参数说明:参数的枚举值列表。 min String 参数说明:参数的最小值。 取值范围:长度1-16。 最小长度:1 最大长度:16 max String 参数说明:参数的最大值。 取值范围:长度1-16。 最小长度:1 最大长度:16 max_length Integer 参数说明:参数的最大长度。 step Double 参数说明:参数的步长。 unit String 参数说明:参数的单位。 取值范围:长度不超过16。 最大长度:16 description String 参数说明:参数的描述。 取值范围:长度不超过128,只允许中文、字母、数字、空白字符、以及_?'#().,;&%@!- ,、:;。¥$!【】’‘“”()?…~/等字符的组合。
  • URI GET /v5/iot/{project_id}/products/{product_id} 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 参数说明:项目ID。获取方法请参见 获取项目ID 。 product_id 是 String 参数说明:产品ID,用于唯一标识一个产品,在物联网平台创建产品后由平台分配获得。 取值范围:长度不超过36,只允许字母、数字、下划线(_)、连接符(-)的组合。 表2 Query参数 参数 是否必选 参数类型 描述 app_id 否 String 参数说明:资源空间ID。此参数为非必选参数,存在多资源空间的用户需要使用该接口时,建议携带该参数,指定要查询的产品属于哪个资源空间;若不携带,则优先取默认资源空间下产品,如默认资源空间下无对应产品,则按照产品创建时间取最早创建产品。如果用户存在多资源空间,同时又不想携带该参数,可以联系华为技术支持对用户数据做资源空间合并。 取值范围:长度不超过36,只允许字母、数字、下划线(_)、连接符(-)的组合。
  • 请求参数 表3 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 否 String 参数说明:用户Token。通过调用IAM服务 获取IAM用户Token接口获取,接口返回的响应消息头中“X-Subject-Token”就是需要获取的用户Token。简要的获取方法样例请参见 Token认证。 Instance-Id 否 String 参数说明:实例ID。物理多租下各实例的唯一标识,建议携带该参数,在使用专业版时必须携带该参数。您可以在IoTDA管理控制台界面,选择左侧导航栏“总览”页签查看当前实例的ID,具体获取方式请参考查看实例详情 。
  • 响应参数 状态码: 200 表4 响应Body参数 参数 参数类型 描述 request_id String 设备属性查询ID,用于唯一标识一条属性查询,在下发查询属性时由物联网平台分配获得。 response Object 设备上报的属性执行结果。Json格式,具体格式需要应用和设备约定。 error_code String 属性查询异常错误码。 error_msg String 属性查询异常错误信息。
  • URI GET /v5/iot/{project_id}/devices/{device_id}/properties 表1 路径参数 参数 是否必选 参数类型 描述 device_id 是 String 参数说明:下发属性的设备ID,用于唯一标识一个设备,在注册设备时由物联网平台分配获得。 取值范围:长度不超过128,只允许字母、数字、下划线(_)、连接符(-)的组合。 project_id 是 String 参数说明:项目ID。获取方法请参见 获取项目ID 。 表2 Query参数 参数 是否必选 参数类型 描述 service_id 是 String 参数说明:设备的服务ID,在设备关联的产品模型中定义。
  • 响应示例 状态码: 200 OK { "request_id" : "b1224afb-e9f0-4916-8220-b6bab568e888", "response" : { "services" : { "serviceId" : "Temperature", "properties" : { "PhV_phsA" : "1", "PhV_phsB" : "2" }, "eventTime" : "20190606T121212Z" } } }
  • 请求参数 表3 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 否 String 参数说明:用户Token。通过调用IAM服务 获取IAM用户Token接口获取,接口返回的响应消息头中“X-Subject-Token”就是需要获取的用户Token。简要的获取方法样例请参见 Token认证。 Instance-Id 否 String 参数说明:实例ID。物理多租下各实例的唯一标识,建议携带该参数,在使用专业版时必须携带该参数。您可以在IoTDA管理控制台界面,选择左侧导航栏“总览”页签查看当前实例的ID,具体获取方式请参考查看实例详情 。
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 否 String 参数说明:用户Token。通过调用IAM服务 获取IAM用户Token接口获取,接口返回的响应消息头中“X-Subject-Token”就是需要获取的用户Token。简要的获取方法样例请参见 Token认证。 Instance-Id 否 String 参数说明:实例ID。物理多租下各实例的唯一标识,建议携带该参数,在使用专业版时必须携带该参数。您可以在IoTDA管理控制台界面,选择左侧导航栏“总览”页签查看当前实例的ID,具体获取方式请参考查看实例详情 。 最小长度:1 最大长度:36 表3 FormData参数 参数 是否必选 参数类型 描述 file 是 File 参数说明:上传批量任务文件。 取值范围:当前仅支持xlsx/xls文件格式,且文件最大行数为100000行。
  • 响应示例 状态码: 200 查询设备所有隧道信息成功 { "tunnels" : [ { "tunnel_id" : "d144a524-1997-4b99-94bf-f27128da8a34", "device_id" : "1a7ffc5c-d89c-44dd-8265-b1653d951ce0", "create_time" : "20190303T081011Z", "closed_time" : "20190303T081011Z", "status" : "CLOSED", "source_connect_state" : { "last_update_time" : "20190303T081011Z", "status" : "CONNECTED" }, "device_connect_state" : { "last_update_time" : "20190303T081011Z", "status" : "CONNECTED" } } ] }
  • 请求参数 表3 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 否 String 参数说明:用户Token。通过调用IAM服务 获取IAM用户Token接口获取,接口返回的响应消息头中“X-Subject-Token”就是需要获取的用户Token。简要的获取方法样例请参见 Token认证。 Instance-Id 否 String 参数说明:实例ID。物理多租下各实例的唯一标识,建议携带该参数,在使用专业版时必须携带该参数。您可以在IoTDA管理控制台界面,选择左侧导航栏“总览”页签查看当前实例的ID,具体获取方式请参考查看实例详情 。
  • 响应参数 状态码: 200 表4 响应Body参数 参数 参数类型 描述 tunnels Array of TunnelInfo objects 隧道信息列表。 数组长度:0 - 100 表5 TunnelInfo 参数 参数类型 描述 tunnel_id String 隧道ID device_id String 设备ID create_time String 隧道创建时间。格式:yyyyMMdd'T'HHmmss'Z',如20151212T121212Z。 closed_time String 隧道更新时间。格式:yyyyMMdd'T'HHmmss'Z',如20151212T121212Z。 status String 隧道状态 CLOSED | OPEN source_connect_state ConnectState object 访问端(console)状态 device_connect_state ConnectState object 设备端状态 表6 ConnectState 参数 参数类型 描述 last_update_time String 隧道最近一次状态更新时间。格式:yyyyMMdd'T'HHmmss'Z',如20151212T121212Z。 status String 客户端连接状态 CONNECTED | DISCONNECTED
  • 请求示例 产品删除通知示例: 产品删除通知 { "resource" : "product", "event" : "delete", "event_time" : "20151212T121212Z", "event_time_ms" : "2015-12-12T12:12:12.000Z", "request_id" : "3fe58d5e-8697-4849-a165-7db128f7e776", "notify_data" : { "body" : { "product_id" : "5ba24f5ebbe8f56f5a14f605", "name" : "Thermometer", "app_id" : "jeQDJQZltU8iKgFFoW060F5SGZka" } } }
  • 请求参数 表1 请求Body参数 参数 是否必选 参数类型 描述 resource 是 String 参数说明:订阅的资源名称,取值为product。 event 是 String 参数说明:订阅的资源事件,取值为delete。 event_time 是 String 参数说明:资源事件生成时间,格式:yyyyMMdd'T'HHmmss'Z' UTC字符串,如:20151212T121212Z。若需要显示本地时区,您需要自己进行时间转换。 event_time_ms 否 String 参数说明:资源事件生成时间,格式:yyyy-MM-dd'T'HH:mm:ss.SSS'Z' UTC字符串,如:2015-12-12T12:12:12.000Z。若需要显示本地时区,您需要自己进行时间转换。 request_id 否 String 参数说明:消息ID,由设备侧指定或平台生成,用于跟踪业务流程。 notify_data 是 ProductDeleteNotifyData object 参数说明:推送消息。 表2 ProductDeleteNotifyData 参数 是否必选 参数类型 描述 body 是 DeletedProduct object 参数说明:推送消息内容。 表3 DeletedProduct 参数 是否必选 参数类型 描述 app_id 否 String 参数说明:资源空间ID。 product_id 否 String 参数说明:产品ID,用于唯一标识一个产品,在物联网平台创建产品后由平台分配获得。 name 否 String 参数说明:产品名称。
  • AT指令列表 经过兼容性认证的模组,在AT命令以及格式规范上,基本和华为通用要求一致,部分模组厂家受限于自己的AT通道,实现稍有不同,可以参考模组厂家的特殊说明。 AT指令 说明 AT+HMVER 获取华为SDK的版本信息 AT+HMCON 设置MQTT协议连接参数 AT+HMDIS 关闭和华为IoT平台连接 AT+HMPUB 发送MQTT数据到指定TOPIC +HMREC 模组接收到的数据通过该方式传递给外部MCU +HMSTS 模组连接或者断开的状态主动传递给外部MCU。 AT+HMSUB 订阅自定义主题 AT+HMUNS 取消订阅自定义主题 AT+HMPKS 用于设置服务器或者客户端证书 父主题: 模组AT指令参考
  • 示例 Topic: $oc/devices/{device_id}/sys/events/down 数据格式: { "object_device_id": "{object_device_id}", "services": [ { "service_id": "$sub_device_manager", "event_type": "delete_sub_device_response", "event_time": "20151212T121212Z", "event_id": "40cc9ab1-3579-488c-95c6-c18941c99eb4", "paras": { "successful_devices": [ "c6b39067b0325db34663d3ef421a42f6_subdevice11" ], "failed_devices": [ { "device_id": "c6b39067b0325db34663d3ef421a42f6_subdevice12", "error_code": "XXX", "error_msg": "XXXX" } ] } } ] }
  • 请求消息体 请求消息体通常以结构化格式发出,与请求消息头中Content-type对应,传递除请求消息头之外的内容。若请求消息体中参数支持中文,则中文字符必须为UTF-8编码。 每个接口的请求消息体内容不同,也并不是每个接口都需要有请求消息体(或者说消息体为空),GET、DELETE操作类型的接口就不需要消息体,消息体具体内容需要根据具体接口而定。 对于创建产品接口,您可以从接口的请求部分看到所需的请求参数及参数说明。将消息体加入后的请求如下所示,加粗的斜体字段需要根据实际值填写,如:其中name为产品名称,device_type为设备类型,protocol_type为设备使用的协议类型。 POST https://iotda.cn-north-4.myhuaweicloud.com/v5/iot/abab***cdcd/products Content-Type: application/json X-Auth-Token: ******** { "name" : "Thermometer", "device_type" : "Thermometer", "protocol_type" : "MQTT", "data_format" : "binary", "manufacturer_name" : "ABC", "industry" : "smartCity", "description" : "this is a thermometer produced by Huawei", "service_capabilities" : [ { "service_type" : "temperature", "service_id" : "temperature", "description" : "temperature", "properties" : [ { "unit" : "centigrade", "min" : "1", "method" : "R", "max" : "100", "data_type" : "decimal", "description" : "force", "step" : 0.1, "enum_list" : [ "string" ], "required" : true, "property_name" : "temperature", "max_length" : 100 } ], "commands" : [ { "command_name" : "reboot", "responses" : [ { "response_name" : "ACK", "paras" : [ { "unit" : "km/h", "min" : "1", "max" : "100", "para_name" : "force", "data_type" : "string", "description" : "force", "step" : 0.1, "enum_list" : [ "string" ], "required" : false, "max_length" : 100 } ] } ], "paras" : [ { "unit" : "km/h", "min" : "1", "max" : "100", "para_name" : "force", "data_type" : "string", "description" : "force", "step" : 0.1, "enum_list" : [ "string" ], "required" : false, "max_length" : 100 } ] } ], "option" : "Mandatory" } ], "app_id" : "jeQDJQZltU8iKgFFoW060F5SGZka" } 到此请求需要的内容已具备齐全,您可以使用curl、Postman或直接编写代码等方式发送请求调用API。
  • 请求消息头 附加请求头字段,如指定的URI和HTTP方法所要求的字段。例如定义消息体类型的请求头“Content-Type”,请求鉴权信息等。 如下公共消息头需要添加到请求中。 Content-Type:消息体的类型(格式),必选,默认取值为“application/json;charset=utf-8”,有其他取值时会在具体接口中专门说明。 X-Auth-Token:用户Token。当使用Token方式认证时,必须填充该字段,可通过调用获取用户Token接口获取,接口返回的响应消息头中“X-Subject-Token”就是需要获取的用户Token。 对于查询产品接口,由于需要认证,所以需要添加“Content-Type”和“X-Auth-Token”到头域,添加消息头后的请求如下所示。 GET https://iotda.cn-north-4.myhuaweicloud.com/v5/iot/{project_id}/products/{product_id} Content-Type: application/json X-Auth-Token:******
  • 请求方法 HTTP请求方法(也称为操作或动词),它告诉服务你正在请求什么类型的操作。 GET:请求服务器返回指定资源。 PUT:请求服务器更新指定资源。 POST:请求服务器新增资源或执行特殊操作。 DELETE:请求服务器删除指定资源,如删除对象等。 HEAD:请求服务器资源头部。 PATCH:请求服务器更新资源的部分内容。当资源不存在的时候,PATCH可能会去创建一个新的资源。 在查询产品的URI部分,您可以看到其请求方法为“GET”,则其请求为: GET https://iotda.cn-north-4.myhuaweicloud.com/v5/iot/{project_id}/products/{product_id}
  • 请求URI 请求URI由如下部分组成。 {URI-scheme} :// {Endpoint} / {resource-path} ? {query-string} 尽管请求URI包含在请求消息头中,但大多数语言或框架都要求您从请求消息中单独传递它,所以在此单独强调。 URI-scheme:表示用于传输请求的协议,当前所有API均采用HTTPS协议。 Endpoint:指定承载REST服务端点的服务器 域名 或IP,不同服务不同区域的Endpoint不同,您可以从平台对接信息中的接入地址获取。 resource-path:资源路径,也即API访问路径。从具体API的URI模块获取,例如“查询产品”API的resource-path为“/v5/iot/{project_id}/products/{product_id}”。 query-string:查询参数,是可选部分,并不是每个API都有查询参数。查询参数前面需要带一个“?”,形式为“参数名=参数取值”,例如“limit=10”,表示查询不超过10条数据。 例如您需要在物联网平台获取在“华北-北京四”区域下的指定产品信息,则需使用“华北-北京四”区域的Endpoint(iotda.cn-north-4.myhuaweicloud.com),并在查询产品的URI部分找到resource-path(/v5/iot/{project_id}/products/{product_id}),拼接起来如下所示。 https://iotda.cn-north-4.myhuaweicloud.com/v5/iot/{project_id}/products/{product_id} 为查看方便,在每个具体API的URI部分,只给出resource-path部分,并将请求方法写在一起。这是因为URI-scheme都是HTTPS,而Endpoint在同一个区域也相同,所以简洁起见将这两部分省略。
  • 响应示例 状态码: 200 OK { "device_id" : "d4922d8a-6c8e-4396-852c-164aefa6638f", "messages" : [ { "message_id" : "b1224afb-e9f0-4916-8220-b6bab568e888", "name" : "message_name", "message" : "string", "topic" : "string", "status" : "PENDING", "created_time" : "20151212T121212Z", "finished_time" : "20151212T121212Z" } ] }
共100000条