创建产品
接口说明
应用服务器可调用此接口创建产品。
调试
您可以在API Explorer中直接运行调试该接口。
注意事项
此接口仅创建了产品,没有创建和安装插件,如果需要对数据进行编解码,还需要在平台开发和安装插件。
URI
|
请求方法 |
POST |
|---|---|
|
URI |
/v5/iot/{project_id}/products |
|
传输协议 |
HTTPS |
请求参数
|
名称 |
必选/可选 |
类型 |
位置 |
说明 |
|---|---|---|---|---|
|
X-Auth-Token |
必选 |
String |
Header |
参数说明:用户Token。通过调用IAM服务 获取IAM用户Token接口获取,接口返回的响应消息头中“X-Subject-Token”就是需要获取的用户Token。简要的获取方法样例请参见 Token认证。 |
|
Instance-Id |
可选 |
String |
Header |
参数说明:实例ID。物理多租下各实例的唯一标识,一般华为云租户无需携带该参数,仅在物理多租场景下从管理面访问API时需要携带该参数。 |
|
project_id |
必选 |
String |
Path |
参数说明:项目ID。获取方法请参见 获取项目ID。 |
|
product_id |
可选 |
String |
Body |
参数说明:产品ID,用于唯一标识一个产品。如果携带此参数,平台将产品ID设置为该参数值;如果不携带此参数,产品ID在物联网平台创建产品后由平台分配获得。 取值范围:长度不超过36,只允许字母、数字、下划线(_)、连接符(-)的组合。 |
|
name |
必选 |
String |
Body |
参数说明:产品名称。 取值范围:长度不超过64,只允许中文、字母、数字、以及_?'#().,&%@!-等字符的组合。 |
|
device_type |
必选 |
String |
Body |
参数说明:设备类型。 取值范围:长度不超过32,只允许中文、字母、数字、以及_?'#().,&%@!-等字符的组合。 |
|
protocol_type |
必选 |
String |
Body |
参数说明:设备使用的协议类型。 取值范围:MQTT,CoAP,HTTP,HTTPS,Modbus,ONVIF,OPC-UA,OPC-DA。 |
|
data_format |
必选 |
String |
Body |
参数说明:设备上报数据的格式。 取值范围:
默认值json。 |
|
service_capabilities |
必选 |
List<ServiceCapability> |
Body |
参数说明:设备的服务能力列表。 |
|
manufacturer_name |
可选 |
String |
Body |
参数说明:厂商名称。 取值范围:长度不超过32,只允许中文、字母、数字、以及_?'#().,&%@!-等字符的组合。 |
|
industry |
可选 |
String |
Body |
参数说明:设备所属行业。 取值范围:长度不超过64,只允许中文、字母、数字、以及_?'#().,&%@!-等字符的组合。 |
|
description |
可选 |
String |
Body |
参数说明:产品的描述信息。 取值范围:长度不超过128,只允许中文、字母、数字、空白字符、以及_?'#().,;&%@!- ,、:;。/等字符的组合。 |
|
app_id |
可选 |
String |
Body |
参数说明:资源空间ID。此参数为非必选参数,存在多资源空间的用户需要使用该接口时,建议携带该参数指定创建的产品归属到哪个资源空间下,否则创建的产品将会归属到默认资源空间下。 取值范围:长度不超过36,只允许字母、数字、下划线(_)、连接符(-)的组合。 |
|
名称 |
必选/可选 |
类型 |
说明 |
|---|---|---|---|
|
service_id |
必选 |
String |
参数说明:设备的服务ID。 取值范围:长度不超过32,只允许中文、字母、数字、以及_?'#().,&%@!-$等字符的组合。 |
|
service_type |
必选 |
String |
参数说明:设备的服务类型。 取值范围:长度不超过32,只允许中文、字母、数字、以及_?'#().,&%@!-$等字符的组合。 |
|
properties |
可选 |
List<ServiceProperty> |
参数说明:设备服务支持的属性列表 |
|
commands |
可选 |
List<ServiceCommand> |
参数说明:设备服务支持的命令列表。 |
|
events |
可选 |
List<ServiceEvent> |
参数说明:设备服务支持的事件列表。 |
|
description |
可选 |
String |
参数说明:设备服务的描述信息。 取值范围:长度不超过128,只允许中文、字母、数字、空白字符、以及_?'#().,;&%@!- ,、:;。/等字符的组合。 |
|
option |
可选 |
String |
参数说明:指定设备服务是否必选。目前本字段为非功能性字段,仅起到标识作用。 取值范围:
默认值为Optional。 |
|
名称 |
必选/可选 |
类型 |
说明 |
|---|---|---|---|
|
property_name |
必选 |
String |
参数说明:设备属性名称。 取值范围:长度不超过64,只允许中文、字母、数字、以及_?'#().,&%@!-等字符的组合。 |
|
data_type |
必选 |
String |
参数说明:设备属性的数据类型。 取值范围:int,long,decimal,string,DateTime,jsonObject,enum,boolean,string list。 |
|
required |
可选 |
Boolean |
参数说明:设备属性是否必选。默认为false。 |
|
enum_list |
可选 |
List<String> |
参数说明:设备属性的枚举值列表。 |
|
min |
可选 |
String |
参数说明:设备属性的最小值。 取值范围:长度1-16。 |
|
max |
可选 |
String |
参数说明:设备属性的最大值。 取值范围:长度1-16。 |
|
max_length |
可选 |
Integer |
参数说明:设备属性的最大长度。 |
|
step |
可选 |
Double |
参数说明:设备属性的步长。 |
|
unit |
可选 |
String |
参数说明:设备属性的单位。 取值范围:长度不超过16。 |
|
method |
必选 |
String |
参数说明:设备属性的访问模式。 取值范围:RWE,RW,RE,WE,E,W,R。
|
|
description |
可选 |
String |
参数说明:设备属性的描述。 取值范围:长度不超过128,只允许中文、字母、数字、空白字符、以及_?'#().,;&%@!- ,、:;。/等字符的组合。 |
|
default_value |
可选 |
Object |
参数说明:设备属性的默认值。如果设置了默认值,使用该产品创建设备时,会将该属性的默认值写入到该设备的设备影子预期数据中,待设备上线时将该属性默认值下发给设备。 |
|
名称 |
必选/可选 |
类型 |
说明 |
|---|---|---|---|
|
command_name |
必选 |
String |
参数说明:设备命令名称。 取值范围:长度不超过64,只允许中文、字母、数字、以及_?'#().,&%@!-等字符的组合。 |
|
paras |
可选 |
List<ServiceCommandPara> |
参数说明:设备命令的参数列表。 |
|
responses |
可选 |
List<ServiceCommandResponse> |
参数说明:设备命令的响应列表。 |
|
名称 |
必选/可选 |
类型 |
说明 |
|---|---|---|---|
|
para_name |
必选 |
String |
参数说明:参数的名称。 取值范围:长度不超过32,只允许中文、字母、数字、以及_?'#().,&%@!-等字符的组合。 |
|
data_type |
必选 |
String |
参数说明:参数的数据类型。 取值范围:int,long,decimal,string,DateTime,jsonObject,enum,boolean,string list。 |
|
required |
可选 |
Boolean |
参数说明:参数是否必选。默认为false。 |
|
enum_list |
可选 |
List<String> |
参数说明:参数的枚举值列表。 |
|
min |
可选 |
String |
参数说明:参数的最小值。 取值范围:长度1-16。 |
|
max |
可选 |
String |
参数说明:参数的最大值。 取值范围:长度1-16。 |
|
max_length |
可选 |
Integer |
参数说明:参数的最大长度。 |
|
step |
可选 |
Double |
参数说明:参数的步长。 |
|
unit |
可选 |
String |
参数说明:参数的单位。 取值范围:长度不超过16。 |
|
description |
可选 |
String |
参数说明:参数的描述。 取值范围:长度不超过128,只允许中文、字母、数字、空白字符、以及_?'#().,;&%@!- ,、:;。/等字符的组合。 |
|
名称 |
必选/可选 |
类型 |
说明 |
|---|---|---|---|
|
response_name |
必选 |
String |
参数说明:设备命令响应名称。 取值范围:长度不超过128,只允许中文、字母、数字、以及_?'#().,&%@!-等字符的组合。 |
|
paras |
可选 |
List<ServiceCommandPara> |
参数说明:设备命令响应的参数列表。 |
|
名称 |
必选/可选 |
类型 |
说明 |
|---|---|---|---|
|
event_type |
必选 |
String |
参数说明:设备事件类型。 取值范围:长度不超过32,只允许中文、字母、数字、以及_?'#().,&%@!-等字符的组合。 |
|
paras |
可选 |
List<ServiceCommandPara> |
参数说明:设备事件的参数列表。 |
响应参数
|
名称 |
类型 |
说明 |
|---|---|---|
|
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。 |
|
data_format |
String |
设备上报数据的格式,取值范围:json,binary。 |
|
manufacturer_name |
String |
厂商名称。 |
|
industry |
String |
设备所属行业。 |
|
description |
String |
产品的描述信息。 |
|
service_capabilities |
List<ServiceCapability> |
设备的服务能力列表。 |
|
create_time |
String |
在物联网平台创建产品的时间,格式:yyyyMMdd'T'HHmmss'Z',如20151212T121212Z。 |
|
名称 |
类型 |
说明 |
|---|---|---|
|
service_id |
String |
参数说明:设备的服务ID。 取值范围:长度不超过32,只允许中文、字母、数字、以及_?'#().,&%@!-$等字符的组合。 |
|
service_type |
String |
参数说明:设备的服务类型。 取值范围:长度不超过32,只允许中文、字母、数字、以及_?'#().,&%@!-$等字符的组合。 |
|
properties |
List<ServiceProperty> |
参数说明:设备服务支持的属性列表 |
|
commands |
List<ServiceCommand> |
参数说明:设备服务支持的命令列表。 |
|
events |
List<ServiceEvent> |
参数说明:设备服务支持的事件列表。 |
|
description |
String |
参数说明:设备服务的描述信息。 取值范围:长度不超过128,只允许中文、字母、数字、空白字符、以及_?'#().,;&%@!- ,、:;。/等字符的组合。 |
|
option |
String |
参数说明:指定设备服务是否必选。目前本字段为非功能性字段,仅起到标识作用。 取值范围:
默认值为Optional。 |
|
名称 |
类型 |
说明 |
|---|---|---|
|
property_name |
String |
参数说明:设备属性名称。 取值范围:长度不超过64,只允许中文、字母、数字、以及_?'#().,&%@!-等字符的组合。 |
|
data_type |
String |
参数说明:设备属性的数据类型。 取值范围:int,long,decimal,string,DateTime,jsonObject,enum,boolean,string list。 |
|
required |
Boolean |
参数说明:设备属性是否必选。默认为false。 |
|
enum_list |
List<String> |
参数说明:设备属性的枚举值列表。 |
|
min |
String |
参数说明:设备属性的最小值。 取值范围:长度1-16。 |
|
max |
String |
参数说明:设备属性的最大值。 取值范围:长度1-16。 |
|
max_length |
Integer |
参数说明:设备属性的最大长度。 |
|
step |
Double |
参数说明:设备属性的步长。 |
|
unit |
String |
参数说明:设备属性的单位。 取值范围:长度不超过16。 |
|
method |
String |
参数说明:设备属性的访问模式。 取值范围:RWE,RW,RE,WE,E,W,R。
|
|
description |
String |
参数说明:设备属性的描述。 取值范围:长度不超过128,只允许中文、字母、数字、空白字符、以及_?'#().,;&%@!- ,、:;。/等字符的组合。 |
|
default_value |
Object |
参数说明:设备属性的默认值。如果设置了默认值,使用该产品创建设备时,会将该属性的默认值写入到该设备的设备影子预期数据中,待设备上线时将该属性默认值下发给设备。 |
|
名称 |
类型 |
说明 |
|---|---|---|
|
command_name |
String |
参数说明:设备命令名称。 取值范围:长度不超过64,只允许中文、字母、数字、以及_?'#().,&%@!-等字符的组合。 |
|
paras |
List<ServiceCommandPara> |
参数说明:设备命令的参数列表。 |
|
responses |
List<ServiceCommandResponse> |
参数说明:设备命令的响应列表。 |
|
名称 |
类型 |
说明 |
|---|---|---|
|
para_name |
String |
参数说明:参数的名称。 取值范围:长度不超过32,只允许中文、字母、数字、以及_?'#().,&%@!-等字符的组合。 |
|
data_type |
String |
参数说明:参数的数据类型。 取值范围:int,long,decimal,string,DateTime,jsonObject,enum,boolean,string list。 |
|
required |
Boolean |
参数说明:参数是否必选。默认为false。 |
|
enum_list |
List<String> |
参数说明:参数的枚举值列表。 |
|
min |
String |
参数说明:参数的最小值。 取值范围:长度1-16。 |
|
max |
String |
参数说明:参数的最大值。 取值范围:长度1-16。 |
|
max_length |
Integer |
参数说明:参数的最大长度。 |
|
step |
Double |
参数说明:参数的步长。 |
|
unit |
String |
参数说明:参数的单位。 取值范围:长度不超过16。 |
|
description |
String |
参数说明:参数的描述。 取值范围:长度不超过128,只允许中文、字母、数字、空白字符、以及_?'#().,;&%@!- ,、:;。/等字符的组合。 |
|
名称 |
类型 |
说明 |
|---|---|---|
|
response_name |
String |
参数说明:设备命令响应名称。 取值范围:长度不超过128,只允许中文、字母、数字、以及_?'#().,&%@!-等字符的组合。 |
|
paras |
List<ServiceCommandPara> |
参数说明:设备命令响应的参数列表。 |
|
名称 |
类型 |
说明 |
|---|---|---|
|
event_type |
String |
参数说明:设备事件类型。 取值范围:长度不超过32,只允许中文、字母、数字、以及_?'#().,&%@!-等字符的组合。 |
|
paras |
List<ServiceCommandPara> |
参数说明:设备事件的参数列表。 |
请求示例
POST https://{Endpoint}/v5/iot/{project_id}/products
Content-Type: application/json
X-Auth-Token: ********
Instance-Id: ********
{
"product_id" : "5ba24f5ebbe8f56f5a14f605",
"name" : "Thermometer",
"device_type" : "Thermometer",
"protocol_type" : "MQTT",
"data_format" : "json",
"service_capabilities" : [ {
"service_type" : "temperature",
"service_id" : "temperature",
"description" : "temperature",
"properties" : [ {
"unit" : "centigrade",
"min" : "1",
"method" : "RW",
"max" : "100",
"data_type" : "decimal",
"description" : "force",
"step" : 0.1,
"default_value" : {
"color" : "red",
"size" : 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
} ]
} ],
"events" : [ {
"event_type" : "reboot",
"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"
} ],
"manufacturer_name" : "ABC",
"industry" : "smartCity",
"description" : "this is a thermometer produced by Huawei",
"app_id" : "jeQDJQZltU8iKgFFoW060F5SGZka"
}
响应示例
Status Code: 201 Created
Content-Type: application/json
{
"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",
"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",
"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",
"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",
"min" : "1",
"max" : "100",
"max_length" : 100,
"step" : 0.1,
"unit" : "km/h",
"description" : "force"
} ]
} ],
"description" : "temperature",
"option" : "Mandatory"
} ],
"create_time" : "20190303T081011Z"
}
错误码
|
HTTP状态码 |
错误码 |
错误码英文描述 |
错误码中文描述 |
处理建议 |
|---|---|---|---|---|
|
400 |
IOTDA.013005 |
The productName has been used in the same application. |
该应用下产品名已被使用 |
请更换产品名重新操作。 |
|
IOTDA.014034 |
Invalid input. The serviceId or eventType do not match. |
serviceId或eventType不匹配 |
请检查请求参数serviceId与eventType是否与profile中定义的相同。 |
|
|
403 |
IOTDA.000022 |
Operation not allowed. The user does not have the permission |
该用户没有权限 |
请排查该用户是否有权限访问。 |
|
IOTDA.001005 |
Operation not allowed. The parameter 'app_id' is not carried, and the authorized user has more than one applications. Include the parameter 'app_id', or contact Huawei technical support engineers to merge application data. |
该用户下有多个应用的情况下未携带appId访问接口 |
请携带对应的appId或联系华为工程师合并应用数据。 |
|
|
IOTDA.001006 |
Operation not allowed. Application not found by authorized user or the authorized user has no application. |
用户下没有应用或应用与用户不匹配 |
请排查用户下是否有应用或是否有指定的应用。 |
|
|
IOTDA.001007 |
Operation not allowed. The application does not belong to the authorized user. |
应用与用户信息不匹配 |
请排查该用户下是否有指定的应用。 |
|
|
IOTDA.013006 |
The product count of current application exceeds the upper limit. |
该应用下产品数量达到上限 |
请删除无用的产品后重试。 |
Did this article solve your problem?
Thank you for your score!Your feedback would help us improve the website.