为MQTT、HTTP协议产品和云网关设备提供属性的增删改查功能。
功能描述:根据产品ID和该产品下的功能ID查询产品功能, 返回产品功能的详细信息。
GET  /api/v1/products/{productId}/properties/{id}
Path:
| Name | Type | Description | 
|---|---|---|
| productId | int | 产品ID | 
| id | int | 属性ID | 
cURL example:
curl --location --request GET '{{address}} /api/v1/products/{productId}/properties/{id}?accessKeyId={accessKeyId}&signatureNonce={signatureNonce}&signature={signature}' \
--header 'projectId: {projectId}'
Response data:
| Name | Type | Description | 
|---|---|---|
| id | int | 功能ID | 
| name | string | 功能名称 | 
| identifier | string | 属性名称(该产品下唯一) | 
| accessMode | int | 属性读写类型,只读(1:R),读写(2:RW),只写(3:W) | 
| type | int | 数据类型,具体值参考公共能力type类型码表。 | 
| unit | string | 属性单位 | 
| minimum | number | 参数最小值(数值类型特有) | 
| maximum | number | 参数最大值(数值类型特有) | 
| minString | string | 参数最小值(数值类型特有) | 
| maxString | string | 参数最大值(数值类型特有) | 
| productId | int | 产品ID | 
| special | struct | 对部分数据类型的补充说明 | 
| userId | string | 用户ID | 
| nodeName | string | 节点名称 | 
| required | bool | 是否必选 | 
| kind | int | 功能分类(1:标准/2:自定义) | 
| class | int | 功能种类 (1:属性/2:事件) | 
special的子对象结构体:
| Name | Type | Description | 
|---|---|---|
| length | int | string类型的字符串长度,1~2048 | 
| step | double | 步长, 设备上传数据间隔, 整型/浮点型类型才有, 分别对应整型、浮点 | 
| enumArray | struct[] | 枚举或布尔类型的相关信息的数组(布尔类型时元素的key有且仅有0/1,枚举类型时元素的个数不超过20个,key范围0~127) | 
enumArray的子对象结构体:
| Name | Type | Description | 
|---|---|---|
| key | int | 枚举或布尔类型的值(布尔类型时key有且仅有0/1,枚举类型时key范围0~127) | 
| describe | string | 值对应的说明 | 
Response example:
{
    "data": {
        "id": 9422,
        "userId": null,
        "productId": 103618,
        "name": "test",
        "nodeName": "",
        "identifier": "test",
        "accessMode": 1,
        "type": 1,
        "unit": "",
        "minimum": 0,
        "maximum": 0,
        "minString": null,
        "maxString": null,
        "special": {
            "length": 5,
            "step": null,
            "enumArray": null
        },
        "required": false,
        "kind": 2,
        "class": 1
    },
    "success": true,
    "code": 0,
    "msg": null
}
功能描述:查询指定产品下的功能,返回产品功能列表。
GET  /api/v1/products/{productId}/properties
Path:
| Name | Type | Description | 
|---|---|---|
| productId | int | 产品ID | 
cURL example:
curl --location --request GET '{{address}} /api/v1/products/{productId}/properties?accessKeyId={accessKeyId}&signatureNonce={signatureNonce}&signature={signature}' \
--header 'projectId: {projectId}'
Response data:
| Name | Type | Description | 
|---|---|---|
| id | int | 功能ID | 
| name | string | 功能名称 | 
| identifier | string | 属性名称(该产品下唯一) | 
| accessMode | int | 属性读写类型,只读(1:R),读写(2:RW),只写(3:W) | 
| type | int | 数据类型,具体值参考公共能力type类型码表。 | 
| unit | string | 属性单位 | 
| minimum | number | 参数最小值(数值类型特有) | 
| maximum | number | 参数最大值(数值类型特有) | 
| minString | string | 参数最小值(数值类型特有) | 
| maxString | string | 参数最大值(数值类型特有) | 
| special | struct | 对部分数据类型的补充说明 | 
| productId | int | 产品ID | 
| userId | string | 用户ID | 
| nodeName | string | 节点名称 | 
| required | bool | 是否必选 | 
| kind | int | 功能分类(1:标准/2:自定义) | 
| class | int | 功能种类 (1:属性/2:事件) | 
special的子对象结构体:
| Name | Type | Description | 
|---|---|---|
| length | int | string类型的字符串长度,1~2048 | 
| step | double | 步长, 设备上传数据间隔, 整型/浮点型类型才有, 分别对应整型、浮点 | 
| enumArray | struct[] | 枚举或布尔类型的相关信息的数组(布尔类型时元素的key有且仅有0/1,枚举类型时元素的个数不超过20个,key范围0~127) | 
enumArray的子对象结构体:
| Name | Type | Description | 
|---|---|---|
| key | int | 枚举或布尔类型的值(布尔类型时key有且仅有0/1,枚举类型时key范围0~127) | 
| describe | string | 值对应的说明 | 
Response example:
{
    "data": [
        {
            "id": 9422,
            "userId": null,
            "productId": 103618,
            "name": "test",
            "nodeName": "",
            "identifier": "test",
            "accessMode": 1,
            "type": 1,
            "unit": "",
            "minimum": 0,
            "maximum": 0,
            "minString": "0",
            "maxString": "0",
            "special": {
                "length": 5,
                "step": null,
                "enumArray": null
            },
            "required": false,
            "kind": 2,
            "class": 1
        }
    ],
    "success": true,
    "code": 0,
    "msg": null
}
功能描述:指定产品,为该产品添加物模板草稿,用于读写产品属性值。返回物模板草稿的ID。
POST  /api/v1/products/{productId}/properties/draft
Path:
| Name | Type | Description | Required | 
|---|---|---|---|
| productId | string | 产品ID | Yes | 
Body:
| Name | Type | Description | Required | 
|---|---|---|---|
| name | string | 功能名称 | Yes | 
| identifier | string | 属性名称(该产品下唯一) | Yes | 
| accessMode | int | 属性读写类型,只读(1:R),读写(2:RW),只写(3:W) | Yes | 
| type | int | 数据类型,具体值参考公共能力type类型码表。 | Yes | 
| unit | string | 属性单位 | No | 
| minimum | number | 参数最小值(数值类型特有) | No,type为数值类型必填 | 
| maximum | number | 参数最大值(数值类型特有) | No,type为数值类型必填 | 
| nodeName | string | 节点名称 | No | 
| special | struct | 对部分数据类型的补充说明 | No(string/float32/float64/boolean/enum/bytes时必传) | 
special的子对象结构体:
| Name | Type | Description | Required | 
|---|---|---|---|
| length | int | string/bytes类型的字符串长度,1~2048 | No(string/bytes类型时必传) | 
| step | double | 步长, 设备上传数据间隔, 整型/浮点型类型才有, 分别对应整型、浮点 | No(数字类型时必传) | 
| enumArray | struct[] | 枚举或布尔类型的相关信息的数组(布尔类型时元素的key有且仅有0/1,枚举类型时元素的个数不超过20个,key范围0~127) | No(boolean或enum类型时必传) | 
enumArray的子对象结构体:
| Name | Type | Description | Required | 
|---|---|---|---|
| key | int | 枚举或布尔类型的值(布尔类型时key有且仅有0/1,枚举类型时key范围0~127) | Yes | 
| describe | string | 值对应的说明 | Yes | 
Body example:
{
    "name":"cmd_api_wendu02",
    "identifier":"prop_api_wendu02",
    "accessMode":1,
    "type":6,
    "unit":"t",
    "minimum":10.1,
    "maximum":20.2,
    "class":1,
    "minString": null,
    "maxString": null,
    "nodeName": null,
    "special":{
        "step":10.1,
    }
}
cURL example:
curl --location --request POST '{{address}}/api/v1/products/{productId}/properties/draft?accessKeyId={accessKeyId}&signatureNonce={signatureNonce}&signature={signature}' \
--header 'projectId: {projectId}' \
--header 'Content-Type: application/json' \
--data-raw '{
                "name":"cmd_api_wendu02",
                "identifier":"prop_api_wendu02",
                "accessMode":1,
                "type":6,
                "unit":"t",
                "minimum":10.1,
                "maximum":20.2,
                "class":1,
                "minString": null,
                "maxString": null,
                "nodeName": null,
                "special":{
                    "step":10.1,
                }
            }'
Response data:
| Name | Type | Description | 
|---|---|---|
| id | int | 物模板草稿ID | 
| name | string | 功能名称 | 
| identifier | string | 属性名称(该产品下唯一) | 
| accessMode | int | 属性读写类型,只读(1:R),读写(2:RW),只写(3:W) | 
| type | int | 数据类型,具体值参考公共能力type类型码表。 | 
| unit | string | 属性单位 | 
| minimum | number | 参数最小值(数值类型特有) | 
| maximum | number | 参数最大值(数值类型特有) | 
| minString | string | 参数最小值(数值类型特有) | 
| maxString | string | 参数最大值(数值类型特有) | 
| productId | int | 产品ID | 
| userId | string | 用户ID | 
| nodeName | string | 节点名称 | 
Response example:
{
  "success": true,
  "code": 0,
  "msg": "",
  "data": {
    "id": 23,
    "name": "cmd_api_wendu02",
    "identifier": "prop_api_wendu02",
    "accessMode": 1,
    "type": 7,
    "unit": "t",
    "minimum": 10,
    "maximum": 20,
    "minString": null,
    "maxString": null,
    "productId": 100152,
    "userId": "a881f626c8ec42ceb4c597a3ce7f0bbe",
    "nodeName": null
  }
}
功能描述:删除指定产品下的某一物模板草稿。
DELETE  /api/v1/products/{productId}/properties/draft/{id}
Path:
| Name | Type | Description | 
|---|---|---|
| productId | int | 产品ID | 
| id | int | 物模板草稿ID | 
cURL example:
curl --location --request DELETE '{{address}} /api/v1/products/{productId}/properties/draft/{id}?accessKeyId={accessKeyId}&signatureNonce={signatureNonce}&signature={signature}' \
--header 'projectId: {projectId}'
Response example:
{
  "success": true,
  "code": 0,
  "msg": "",
  "data": 1
}
功能描述:更新指定产品下的某一物模板草稿。
PUT  /api/v1/products/{productId}/properties/draft/{id}
Path:
| Name | Type | Description | 
|---|---|---|
| productId | int | 产品ID | 
| id | int | 属性ID | 
Body:
| Name | Type | Description | Required | 
|---|---|---|---|
| name | string | 功能名称 | No | 
| accessMode | int | 属性读写类型,只读(1:R),读写(2:RW),只写(3:W) | No | 
| unit | string | 属性单位 | No | 
| minimum | number | 参数最小值(Integer,Long, Float, Double) | No | 
| maximum | number | 参数最大值(Integer,Long, Float, Double) | No | 
| special | strut | 对部分数据类型的补充说明 | No | 
special的子对象结构体:
| Name | Type | Description | Required | 
|---|---|---|---|
| length | int | string/bytes类型的字符串长度,1~2048 | No(string/bytes类型时必传) | 
| step | double | 步长, 设备上传数据间隔, 整型/浮点型类型才有, 分别对应整型、浮点 | |
| enumArray | struct[] | 枚举或布尔类型的相关信息的数组(布尔类型时元素的key有且仅有0/1,枚举类型时元素的个数不超过20个,key范围0~127) | No(boolean或enum类型时必传) | 
enumArray的子对象结构体:
| Name | Type | Description | Required | 
|---|---|---|---|
| key | int | 枚举或布尔类型的值(布尔类型时key有且仅有0/1,枚举类型时key范围0~127) | Yes | 
| describe | string | 值对应的说明 | Yes | 
Body example:
{
    "name":"cmd_api_wendu02",
    "identifier":"prop_api_wendu02",
    "accessMode":1,
    "type":6,
    "unit":"t",
    "minimum":10.1,
    "maximum":20.2,
    "class":1,
    "minString": null,
    "maxString": null,
    "nodeName": null,
    "special":{
        "step":10.1,
    }
}
cURL example:
curl --location --request PUT '{{address}} /api/v1/products/{productId}/properties/draft/{id}?accessKeyId={accessKeyId}&signatureNonce={signatureNonce}&signature={signature}' \
--header 'projectId: {projectId}' \
--header 'Content-Type: application/json' \
--data-raw '{
                "name":"cmd_api_wendu02",
                "identifier":"prop_api_wendu02",
                "accessMode":1,
                "type":6,
                "unit":"t",
                "minimum":10.1,
                "maximum":20.2,
                "class":1,
                "minString": null,
                "maxString": null,
                "nodeName": null,
                "special":{
                    "step":10.1,
                }
            }'
Response example:
{
  "success": true,
  "code": 0,
  "msg": "",
  "data": 1
}
功能描述:根据产品ID和该产品下的功能ID查询物模板草稿, 返回物模板草稿的详细信息。
GET  /api/v1/products/{productId}/properties/draft/{id}
Path:
| Name | Type | Description | 
|---|---|---|
| productId | int | 产品ID | 
| id | int | 物模板草稿ID | 
cURL example:
curl --location --request GET '{{address}} /api/v1/products/{productId}/properties/draft/{id}?accessKeyId={accessKeyId}&signatureNonce={signatureNonce}&signature={signature}' \
--header 'projectId: {projectId}'
Response data:
| Name | Type | Description | 
|---|---|---|
| id | int | 物模板草稿ID | 
| name | string | 功能名称 | 
| identifier | string | 属性名称(该产品下唯一) | 
| accessMode | int | 属性读写类型,只读(1:R),读写(2:RW),只写(3:W) | 
| type | int | 数据类型,具体值参考公共能力type类型码表。 | 
| unit | string | 属性单位 | 
| minimum | number | 参数最小值(数值类型特有) | 
| maximum | number | 参数最大值(数值类型特有) | 
| minString | string | 参数最小值(数值类型特有) | 
| maxString | string | 参数最大值(数值类型特有) | 
| productId | int | 产品ID | 
| special | struct | 对部分数据类型的补充说明 | 
| userId | string | 用户ID | 
| nodeName | string | 节点名称 | 
| required | bool | 是否必选 | 
| kind | int | 功能分类(1:标准/2:自定义) | 
| class | int | 功能种类 (1:属性/2:事件) | 
special的子对象结构体:
| Name | Type | Description | 
|---|---|---|
| length | int | string类型的字符串长度,1~2048 | 
| step | double | 步长, 设备上传数据间隔, 整型/浮点型类型才有, 分别对应整型、浮点 | 
| enumArray | struct[] | 枚举或布尔类型的相关信息的数组(布尔类型时元素的key有且仅有0/1,枚举类型时元素的个数不超过20个,key范围0~127) | 
enumArray的子对象结构体:
| Name | Type | Description | 
|---|---|---|
| key | int | 枚举或布尔类型的值(布尔类型时key有且仅有0/1,枚举类型时key范围0~127) | 
| describe | string | 值对应的说明 | 
Response example:
{
    "data": {
        "id": 9422,
        "userId": null,
        "productId": 103618,
        "name": "test",
        "nodeName": "",
        "identifier": "test",
        "accessMode": 1,
        "type": 1,
        "unit": "",
        "minimum": 0,
        "maximum": 0,
        "minString": null,
        "maxString": null,
        "special": {
            "length": 5,
            "step": null,
            "enumArray": null
        },
        "required": false,
        "kind": 2,
        "class": 1
    },
    "success": true,
    "code": 0,
    "msg": null
}
功能描述:查询指定产品下的功能,返回产品物模板草稿列表。
GET  /api/v1/products/{productId}/properties/draft
Path:
| Name | Type | Description | 
|---|---|---|
| productId | int | 产品ID | 
cURL example:
curl --location --request GET '{{address}} /api/v1/products/{productId}/properties/draft?accessKeyId={accessKeyId}&signatureNonce={signatureNonce}&signature={signature}' \
--header 'projectId: {projectId}'
Response data:
| Name | Type | Description | 
|---|---|---|
| id | int | 物模板草稿ID | 
| name | string | 功能名称 | 
| identifier | string | 属性名称(该产品下唯一) | 
| accessMode | int | 属性读写类型,只读(1:R),读写(2:RW),只写(3:W) | 
| type | int | 数据类型,具体值参考公共能力type类型码表。 | 
| unit | string | 属性单位 | 
| minimum | number | 参数最小值(数值类型特有) | 
| maximum | number | 参数最大值(数值类型特有) | 
| minString | string | 参数最小值(数值类型特有) | 
| maxString | string | 参数最大值(数值类型特有) | 
| special | struct | 对部分数据类型的补充说明 | 
| productId | int | 产品ID | 
| userId | string | 用户ID | 
| nodeName | string | 节点名称 | 
| required | bool | 是否必选 | 
| kind | int | 功能分类(1:标准/2:自定义) | 
| class | int | 功能种类 (1:属性/2:事件) | 
special的子对象结构体:
| Name | Type | Description | 
|---|---|---|
| length | int | string类型的字符串长度,1~2048 | 
| step | double | 步长, 设备上传数据间隔, 整型/浮点型类型才有, 分别对应整型、浮点 | 
| enumArray | struct[] | 枚举或布尔类型的相关信息的数组(布尔类型时元素的key有且仅有0/1,枚举类型时元素的个数不超过20个,key范围0~127) | 
enumArray的子对象结构体:
| Name | Type | Description | 
|---|---|---|
| key | int | 枚举或布尔类型的值(布尔类型时key有且仅有0/1,枚举类型时key范围0~127) | 
| describe | string | 值对应的说明 | 
Response example:
{
    "data": [
        {
            "id": 9422,
            "userId": null,
            "productId": 103618,
            "name": "test",
            "nodeName": "",
            "identifier": "test",
            "accessMode": 1,
            "type": 1,
            "unit": "",
            "minimum": 0,
            "maximum": 0,
            "minString": "0",
            "maxString": "0",
            "special": {
                "length": 5,
                "step": null,
                "enumArray": null
            },
            "required": false,
            "kind": 2,
            "class": 1
        }
    ],
    "success": true,
    "code": 0,
    "msg": null
}
功能描述:发布指定产品下的所有物模板草稿。
POST  /api/v1/products/{productId}/properties/draft/publish
Path:
| Name | Type | Description | 
|---|---|---|
| productId | int | 产品ID | 
cURL example:
curl --location --request POST '{{address}} /api/v1/products/{productId}/properties/draft/publish?accessKeyId={accessKeyId}&signatureNonce={signatureNonce}&signature={signature}' \
--header 'projectId: {projectId}'
Response example:
{
  "success": true,
  "code": 0,
  "msg": "",
  "data": null
}