设备模板管理

在新版物管理中,我们引入了模板的概念,模板定义了一类设备的schema。Schema中定义了各设备各属性的显示名称、类型、默认值等信息。可以理解为,通过模板,我们定义了设备的视图(view)。此外,我们需要支持模板的CRUD操作。IoT
Device Management Schema API 主要包含管理设备模板的相关接口。

创建模板

方法 API 说明
POST /v3/iot/management/schema 创建模板

请求参数

参数名称 参数类型 是否必须 说明
name String 必须 模板名称
description String 可选 模板说明
properties List<SchemaProperty> 必须 模板属性列表

返回参数

参数名称 参数类型 说明
schemaId String 模板ID

请求示例

POST /v3/iot/management/schema HTTP/1.1 
Host:iotdm.gz.baidubce.com 
Authorization:{authorization} 
Content-Type: application/json; charset=utf-8 
{
    "name": "myFirstSchema",
    "description": "description",
    "properties": [
        {
            "name": "temperature",
            "type": "number",
            "displayName": "温度",
            "defaultValue": "38.2",
            "unit": "deg"
        },
        {
            "name": "pressure",
            "type": "number",
            "displayName": "压力",
            "defaultValue": "9",
            "unit": "MPa"
        }
    ]
}

返回示例

HTTP/1.1 200 OK 
Content-Type: application/json; charset=utf-8 
x-bce-request-id: 993ff7e9-018b-4246-a7ba-5dddac970054 
{ 
    "schemaid": "ab13ef935b84173a0f41f90c33daa87"
}

删除模板

方法 API 说明
DELETE /v3/iot/management/schema/{schemaId} 根据schemaId删除模板

请求示例

DELETE /v3/iot/management/schema/mySchema HTTP/1.1 
Host:iotdm.gz.baidubce.com 
Authorization:{authorization}

返回示例

HTTP/1.1 200 OK 
Content-Type: application/json; charset=utf-8 
x-bce-request-id: 993ff7e9-018b-4246-a7ba-5dddac970054

注:删除模板,要求没有设备引用该模板。否则,会抛出异常。

获取模板列表

方法 API 说明
GET /v3/iot/management/schema?pageNo=xx&pageSize=xx&order=xx&orderBy=xx&key=xx 根据条件查询模板列表

请求参数

参数名称 参数类型 是否必须 说明
pageNo int 可选 获取列表在查询结果的页码,默认为1
pageSize int 可选 一页所包含的最大模板数量,默认为10
order String 可选 查询结果升序或降序排列,asc ¦ desc,默认asc
orderBy String 可选 排序的索引列,name ¦ createTime ¦ lastUpdatedTime,默认name
key String 可选 查询关键字,模板名称

返回参数

参数名称 参数类型 说明
totalCount int 模板总数
pageNo int 当前页码
pageSize int 一页所包含的最大模板数量
result List<Schema> 模板参数列表

请求示例

GET /v3/iot/management/schema?pageNo=1&pageSize=200&order=asc&orderBy=name&key=myFirstSchema HTTP/1.1 
Host:iotdm.gz.baidubce.com 
Authorization:{authorization}

返回示例

HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
x-bce-request-id: 993ff7e9-018b-4246-a7ba-5dddac970054
{
    "totalCount": 1,
    "pageNo": 1,
    "pageSize": 200,
    "result": [
        {
            "id": "1234939554",
            "name": "myFirstSchema",
            "description": " desc",
            "createTime": 1494904250,
            "lastUpdatedTime": 1494904250,
            "properties": [
                {
                    "name": "temperature",
                    "type": "number",
                    "displayName": "温度",
                    "defaultValue": "38.2",
                    "unit": "deg"
                },
                {
                    "name": "pressure",
                    "type": "number",
                    "displayName": "压力",
                    "defaultValue": "9",
                    "unit": "MPa"
                }
            ]
        }
    ]
}

获取模板

方法 API 说明
GET /v3/iot/management/schema/{schema_id} 根据模板ID获取模板详情

返回参数

一个Schema实例

请求示例

GET /v3/iot/management/schema/1234939554 HTTP/1.1
Host:iotdm.gz.baidubce.com
Authorization:{authorization}

返回示例

HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
x-bce-request-id: 993ff7e9-018b-4246-a7ba-5dddac970054
{
    "id": "1234939554",
    "name": "myFirstSchema",
    "description": " desc",
    "createTime": 1494904250,
    "lastUpdatedTime": 1494904250,
    "properties": [
        {
            "name": "temperature",
            "type": "number",
            "displayName": "温度",
            "defaultValue": "38.2",
            "unit": "deg"
        },
        {
            "name": "pressure",
            "type": "number",
            "displayName": "压力",
            "defaultValue": "9",
            "unit": "MPa"
        }
    ]
}

更新模板

方法 API 说明
PUT /v3/iot/management/schema/{schema_id} 根据模板ID更新设备模板

请求参数

参数名称 参数类型 是否必须 说明
description String 可选 模板说明
properties List<SchemaProperty> 可选 模板属性列表

请求示例

PUT  /v3/iot/management/schema/1234939554 HTTP/1.1
Host:iotdm.gz.baidubce.com
Authorization:{authorization}
{
    "description": "new description",
    "properties": [
        {
            "name": "temperature",
            "type": "number",
            "displayName": "温度",
            "defaultValue": "38.3",
            "unit": "deg"
        },
        {
            "name": "pressure",
            "type": "number",
            "displayName": "压力",
            "defaultValue": "9",
            "unit": "MPa"
        },
        {
            "name": "speed",
            "type": "number",
            "displayName": "速度",
            "defaultValue": "5",
            "unit": "mps"
        }
    ]
}

返回示例

HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
x-bce-request-id: 993ff7e9-018b-4246-a7ba-5dddac970054