
# 查询产品
#### 功能介绍
应用服务器可调用此接口查询已导入物联网平台的指定产品模型详细信息，包括产品模型的服务、属性、命令等。
#### URI
GET /v5/iotps/{project_id}/products/{product_id}
表1路径参数 
| 参数         | 是否必选 | 参数类型   | 描述                                               |
|:---|:---|:---|:---|
| project_id | 是    | String | 项目ID。 最小长度：**1** 最大长度：**32**                     |
| product_id | 是    | String | 产品ID，用于唯一标识一个产品，在物联网平台的SP Portal上导入产品模型后由平台分配获得。 |
表2Query参数 
| 参数              | 是否必选 | 参数类型   | 描述               |
|:---|:---|:---|:---|
| region_id       | 是    | String | 区域ID，用于区分不同的区域。  |
| access_point_id | 是    | String | 接入点id，用于区分不同的区域。 |
#### 请求参数
表3请求Header参数 
| 参数           | 是否必选 | 参数类型   | 描述                                                        |
|:---|:---|:---|:---|
| X-Auth-Token | 是    | String | 用户Token。 通过调用IAM服务获取用户Token接口获取（响应消息头中X-Subject-Token的值）。 |
   
#### 响应参数
**状态码： 200**
表4响应Body参数 
| 参数                   | 参数类型                                                                                            | 描述                                                                         |
|:---|:---|:---|
| product_id           | String                                                                                          | 产品ID，用于唯一标识一个产品模型，在物联网平台的SP Portal上导入产品模型后由平台分配获得。 最小长度：**0** 最大长度：**255** |
| name                 | String                                                                                          | 产品名称。 最小长度：**0** 最大长度：**255**                                              |
| device_type          | String                                                                                          | 设备类型。 最小长度：**0** 最大长度：**255**                                              |
| model                | String                                                                                          | 设备型号。 最小长度：**0** 最大长度：**255**                                              |
| protocol_type        | String                                                                                          | 设备使用的协议类型。 最小长度：**0** 最大长度：**20**                                          |
| data_format          | String                                                                                          | 设备上报数据的格式。 最小长度：**0** 最大长度：**20**                                          |
| industry             | String                                                                                          | 设备所属行业。 最小长度：**0** 最大长度：**255**                                            |
| description          | String                                                                                          | 产品的描述信息。 最小长度：**0** 最大长度：**2048**                                          |
| service_capabilities | Array of [ServiceCapability] objects | 设备的服务能力列表。 数组长度：**0 - 1000**                                               |
| create_time          | String                                                                                          | 在物联网平台创建产品的时间。 最小长度：**0** 最大长度：**128**                                     |
   
 表5ServiceCapability 
| 参数           | 参数类型                                                                                        | 描述                                                                            |
|:---|:---|:---|
| service_id   | String                                                                                      | 设备的服务ID。                                                                      |
| service_type | String                                                                                      | 设备的服务类型。                                                                      |
| properties   | Array of [ServiceProperty] objects | 设备服务支持的属性列表。 数组长度：**0 - 1000**                                                |
| commands     | Array of [ServiceCommand] objects   | 设备服务支持的命令列表。 数组长度：**0 - 1000**                                                |
| description  | String                                                                                      | 设备服务的描述信息。                                                                    |
| option       | String                                                                                      | 指定设备服务是否必选。Master（主服务）, Mandatory（必选服务）, Optional（可选服务），目前本字段为非功能性字段，仅起到标识作用。 |
   
 表6ServiceProperty 
| 参数            | 参数类型             | 描述                                                    |
|:---|:---|:---|
| property_name | String           | 设备属性名称。                                               |
| required      | Boolean          | 设备属性是否必选。                                             |
| data_type     | String           | 设备属性的数据类型。                                            |
| enum_list     | Array of strings | 设备属性的枚举值列表。 数组长度：**0 - 1000**                         |
| min           | String           | 设备属性的最小值。 最小长度：**1** 最大长度：**16**                      |
| max           | String           | 设备属性的最大值。 最小长度：**1** 最大长度：**16**                      |
| max_length    | Integer          | 设备属性的最大长度。                                            |
| step          | Double           | 设备属性的步长。                                              |
| unit          | String           | 设备属性的单位。                                              |
| method        | String           | 设备属性的访问模式。 - R：属性值可读 - W：属性值可写 - E：属性值可订阅，即属性值变化时上报事件 |
| description   | String           | 设备属性的描述。                                              |
   
 表7ServiceCommand 
| 参数           | 参数类型                                                                                                      | 描述                           |
|:---|:---|:---|
| command_name | String                                                                                                    | 设备命令名称。                      |
| paras        | Array of [ServiceCommandPara] objects         | 设备命令的参数列表。 数组长度：**0 - 100**  |
| responses    | Array of [ServiceCommandResponse] objects | 设备命令的响应列表。 数组长度：**0 - 1000** |
   
 表8ServiceCommandResponse 
| 参数            | 参数类型                                                                                              | 描述                            |
|:---|:---|:---|
| paras         | Array of [ServiceCommandPara] objects | 设备命令响应的参数列表。 数组长度：**0 - 100** |
| response_name | String                                                                                            | 设备命令响应名称。                     |
   
 表9ServiceCommandPara 
| 参数          | 参数类型             | 描述                                |
|:---|:---|:---|
| para_name   | String           | 命令参数的名称。                          |
| required    | Boolean          | 命令参数是否必选。                         |
| data_type   | String           | 命令参数的数据类型。                        |
| enum_list   | Array of strings | 命令参数的枚举值列表。 数组长度：**0 - 1000**     |
| min         | String           | 命令参数的最小值。 最小长度：**1** 最大长度：**16**  |
| max         | String           | 命令参数的最大值。 最小长度：**1** 最大长度：**16**  |
| max_length  | Integer          | 命令参数的最大长度。 最小值：**0** 最大值：**1000** |
| step        | Double           | 命令参数的步长。 最小值：**0** 最大值：**1000**   |
| unit        | String           | 命令参数的单位。 最小长度：**0** 最大长度：**16**   |
| description | String           | 命令参数的描述。                          |
   
#### 请求示例
无
#### 响应示例
**状态码： 200**
Successful response
```
{
  "product_id" : "5ba24f5ebbe8f56f5a14f605",
  "name" : "Thermometer",
  "device_type" : "Thermometer",
  "model" : "123",
  "protocol_type" : "LWM2M",
  "data_format" : "binary",
  "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" : "R",
      "description" : "force"
    } ],
    "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" : [ {
        "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"
        } ],
        "response_name" : "ACK"
      } ]
    } ],
    "description" : "temperature",
    "option" : "Mandatory"
  } ],
  "create_time" : "20190303T081011Z"
}
```
#### 状态码
| 状态码 | 描述                  |
|:---|:---|
| 200 | Successful response |
| 403 | FORBIDDEN           |
| 404 | Not Found           |
   
#### 错误码
请参见[错误码](https://support.huaweicloud.com/api-iotps/ErrorCode.html)。
