空间模板API

更新时间:2019-10-25 14:49:37

概述

空间模板是一种固定的空间框架,用户可以通过空间模板创建相应的空间,使用空间模板可以创建与空间模板结构类似的空间。
空间模板下可以建立与产品和场景模板的关联关系。

接口分为两大类:

空间模板管理的相关接口

接口名 简介
创建空间模板 新建空间模板。
更新空间模板 修改空间模板,目前仅支持修改空间模板名称。
删除空间模板 级联删除空间模板。
空间模板中添加产品 往空间模板中添加产品,支持批量添加。
查询空间模板的产品 分页查询空间模板下的产品列表。
从空间模板中删除产品 从空间模板中删除产品。
查询空间模板 分页查询租户维度的空间模板。
根据空间模板创建空间 根据空间模板创建空间。

用户与空间模板的相关接口

接口名 简介
绑定用户与空间模板 建立用户与空间模板的逻辑关系。
解绑用户与空间模板 解除用户与空间模板的逻辑关系。
查询空间模板的用户 分页查询空间模板关联的用户。
查询用户的空间模板 分页查询用户的绑定的空间模板。

接口文档

创建空间模板

新建空间模板

空间模板可带有子空间模板

目前创建空间模板时仅支持嵌套一层子空间模板

传参带有hid时会默认添加hid对应用户与空间模板的关系

/home/paas/spacetemplate/create
  • 当前版本 1.0.1

入参

字段名 类型 必传 备注
operator JSONObject 操作员,见“身份信息”定义
spaceTemplateInfo JSONObject 空间模板参数

spaceTemplateInfo

字段名 类型 必传 备注
typeCode String 空间类型
参看 空间typeCode
templateName String 空间模板名称
parentId String 父空间模板ID
children JSONArray 子空间模板,同当前对象spaceTemplateInfo

出参

返回结果使用通用结果类型,data域是字符串,见下表的说明:

参数 类型 备注
data String 新增空间模板ID(只返回最顶层空间模板ID)

示例

假设用户A(用户账号ID为idxxx)想创建一个名为“房屋模板”的空间模板,其类型为house,同时该空间模板下带有两个类型为room的子空间模板,创建时请求参数如下:

请求示例

{
  "operator": {
    "hid": "idxxx",
    "hidType": "OPEN"
  },
  "spaceTemplateInfo": {
    "typeCode": "house",
    "templateName": "测试house房屋模板",
    "children": [
      {
        "typeCode": "room",
        "templateName": "house房屋模板下的类型为room的空间模板1"
      },
      {
        "typeCode": "room",
        "templateName": "house房屋模板下的类型为room的空间模板2"
      }
    ]
  }
}

返回示例

{
  "code": 200,
  "data": "fb6ad7d519414e469bc30232d50d38fc",
  "message": "success"
}

更新空间模板

目前仅支持更新空间模板的名字

/home/paas/spacetemplate/update
  • 当前版本 1.0.1

入参

字段名 类型 必传 备注
operator JSONObject 操作员,见“身份信息”定义
spaceTemplateInfo JSONObject 要修改的空间模板信息

spaceTemplateInfo

字段名 类型 必传 备注
spaceTemplateId String 空间模板ID
spaceTemplateName String 修改后的空间模板名称

出参

返回结果使用通用结果类型,data域是字符串,见下表的说明:

参数 类型 备注
data String 修改的空间模板ID

示例

假设用户A(用户账号ID为idxxx)想更新上述创建的空间模板的名称“房屋模板”为“房屋模板新名称”,修改时请求参数如下

请求示例

{
  "operator": {
    "hid": "idxxx",
    "hidType": "OPEN"
  },
  "spaceTemplateInfo": {
    "spaceTemplateId": "fb6ad7d519414e469bc30232d50d38fc",
    "spaceTemplateName": "房屋模板新名称"
  }
}

返回示例

{
  "code": 200,
  "data": "fb6ad7d519414e469bc30232d50d38fc",
  "message": "success"
}

删除空间模板

删除空间模板的同时会删除空间模板下的产品以及场景模板的关联关系

删除空间模板时其子空间模板会一起删除

/home/paas/spacetemplate/delete
  • 当前版本 1.0.1

入参

字段名 类型 必传 备注
operator JSONObject 操作员,见“身份信息”定义
spaceTemplateIdList JSONArray 空间模板ID列表

出参

返回结果使用通用结果类型,data域是Long型,见下表的说明:

参数 类型 备注
data Long 删除的空间模板ID数量

示例

假设用户A(用户账号ID为idxxx)要删除上面创建的名为“房屋模板新名称”的空间模板,删除时请求参数如下:

特别提示:由于该空间模板时其下还关联了两个子空间模板,在删除当前空间模板时,会将其子空间模板一起删除,所以删除后返回的结果为3

请求示例

{
    "operator":{
      "hid":"idxxx",
      "hidType":"OPEN"
    },
    "spaceTemplateIdList": [
      "fb6ad7d519414e469bc30232d50d38fc"
    ]
}

返回示例

{
  "code": 200,
  "data": 3,
  "message": "success"
}

空间模板中添加产品

创建空间模板后,用户可以在空间模板中添加相应的产品;

产品来源参考接口: /home/paas/product/list。

空间模板中添加产品后,每个产品对应唯一标志ID,返回参数字段使用positionId来表示这个唯一ID。

/home/paas/spacetemplate/product/add
  • 当前版本 1.0.1

入参

字段名 类型 必传 备注
operator JSONObject 操作员,见“身份信息”定义
spaceTemplateId String 空间模板ID
productInfoList JSONArray 要添加的产品列表
添加产品数量上限100
结构参考productInfo

productInfo

字段名 类型 必传 备注
productKey String 产品key
productName String 产品名
nickName String 产品昵称

出参

返回结果使用通用结果类型,data域是数值,见下表的说明:

参数 类型 备注
data Integer 添加的产品数量

示例

假设用户A(用户账号ID为idxxx)又创建了名为“测试空间模板”的空间模板,其ID为a7513595381b40278e4dece21d9dd42e,用户A希望在该空间模板中添加一系列产品信息,添加产品时请求参数如下:

请求示例

{
  "operator": {
    "hid": "idxxx",
    "hidType": "OPEN"
  },
  "spaceTemplateId": "a7513595381b40278e4dece21d9dd42e",
  "productInfos": [
    {
      "productKey": "a1B6zda9Zva",
      "productName": "智慧门锁",
      "nickName": "门锁1"
    },
    {
      "productKey": "a1B6zda9Zva",
      "productName": "智慧门锁",
      "nickName": "门锁2"
    },
    {
      "productKey": "a1A9hGx3PGD",
      "productName": "智能风扇",
      "nickName": "风扇"
    }
  ]
}

返回示例

{
  "code": 200,
  "data": 3,
  "message": "success"
}

查询空间模板的产品

可查询当前空间模板下的产品

也可查询其子空间模板下的产品

分页查询

/home/paas/spacetemplate/product/list
  • 当前版本 1.0.1

入参

字段名 类型 必填 备注
operator JSONObject 操作员,见“身份信息”定义
spaceProductQuery JSONObject 查询条件

spaceProductQuery

字段名 类型 必填 备注
spaceTemplateId String 空间模板ID
includeSubSpaceTemplate Boolean 默认false
false 仅查询当前空间模板下的产品列表
true 查询结果包含子空间模板下的产品列表
pageNo Integer 请求的页码,见分页参数定义
pageSize Integer 每页的记录数,见分页参数定义

出参

返回结果使用通用结果类型,data域是对象,见下表的详细说明

参数 类型 备注
total Integer 总数
pageNo Integer 请求的页码
pageSize Integer 每页的记录数
data JSONArray 返回空间模板下的产品信息
定义参考spaceTemplateProductInfo

spaceTemplateProductInfo

参数 类型 备注
positionId String 产品唯一标志ID
productKey String 产品key
productName String 产品名
nickName String 产品昵称

示例

假设用户A(用户账号ID为idxxx)要查询ID为a7513595381b40278e4dece21d9dd42e的空间模板下(不包括子空间模板)的产品列表,其请求参数如下:

请求示例

{
  "operator":{
      "hid":"idxxx",
      "hidType":"OPEN"
  },
  "spaceTemplateId": "a7513595381b40278e4dece21d9dd42e",
  "includeSubSpaceTemplate": false,
  "pageNo": 1,
  "pageSize": 20
}

返回示例

{
  "code": 200,
  "data": {
    "total": 3,
    "data": [
      {
        "positionId": "ca5c12724c414771a624150a75207172",
        "nickName": "门锁1",
        "productKey": "a1B6zda9Zva",
        "productName": "智慧门锁"
      },
      {
        "positionId": "b52bb19097634f66bf112eae48b3232b",
        "nickName": "门锁2",
        "productKey": "a1B6zda9Zva",
        "productName": "智慧门锁"
      },
      {
        "positionId": "8fdc9f439fa24645ba85855cad57ca4a",
        "nickName": "风扇",
        "productKey": "a1A9hGx3PGD",
        "productName": "智能风扇"
      }
    ],
    "pageNo": 1,
    "pageSize": 20
  }
}

从空间模板中删除产品

空间模板中删除产品是以产品对应的positionId为条件来删除的,该参数来源于接口/home/paas/spacetemplate/product/list的出参

/home/paas/spacetemplate/product/delete
  • 当前版本 1.0.1

入参

字段名 类型 必传 备注
operator JSONObject 操作员,见“身份信息”定义
spaceTemplateId String 空间模板ID
positionIdList JSONArray 要删除的产品对应的positionId列表

出参

返回结果使用通用结果类型,不使用data域,无值。

示例

请求示例

{
  "operator":{
      "hid":"idxxx",
      "hidType":"OPEN"
  },  
  "spaceTemplateId": "a7513595381b40278e4dece21d9dd42e",
  "positionIdList": [
    "8fdc9f439fa24645ba85855cad57ca4a"
  ]
}

返回示例

{
  "code": 200,
  "message": "success"
}

查询空间模板

空间模板参数为空时,查询当前租户下的空间列表

空间模板参数不为空时,查询当前租户该模板下的子空间模板

支持按照空间类型查询空间模板

/home/paas/spacetemplate/list
  • 当前版本 1.0.1

入参

字段名 类型 必传 备注
spaceTemplateQuery JSONObject 查询条件

spaceTemplateQuery

字段名 类型 必传 备注
spaceTemplateId String 空间模板ID
includeSub Boolean 默认false
true 查询节点所有的子空间模板列表
false 查询节点的子空间模板列表
typeCode String 查询某些类型空间
typeCode
pageNo Integer 请求的页码,见分页参数定义
pageSize Integer 每页的记录数,见分页参数定义

出参

返回结果使用通用结果类型,data域是分页参数对象,见下表的详细说明:

参数 类型 备注
total Integer 总数
pageNo Integer 请求的页码
pageSize Integer 每页的记录数
data JSONArray 返回空间模板信息
空间模板信息参考spaceTemplateInfo

spaceTemplateInfo

字段名 类型 字段名
spaceTemplateId String 空间模板ID
templateName String 空间名称
typeCode String 空间类型
path String 空间模板路径

示例

假设用户A(用户账号ID为idxxx)要查询空间模板a7513595381b40278e4dece21d9dd42e下类型为house的所有的空间模板,其请求参数如下:

请求示例

{
  "operator": {
    "hid": "idxxx",
    "hidType": "OPEN"
  },
  "spaceTemplateQuery": {
    "spaceTemplateId": "a7513595381b40278e4dece21d9dd42e",
    "includeSub": true,
    "typeCode": "house",
    "pageNo": 1,
    "pageSize": 20
  }
}

返回示例

{
  "code": 200,
  "data": {
    "total": 1,
    "data": [
      {
        "path": "/a7513595381b40278e4dece21d9dd42e",
        "typeCode": "house",
        "templateName": "name1545021367",
        "spaceTemplateId": "a7513595381b40278e4dece21d9dd42e"
      }
    ],
    "pageNo": 1,
    "pageSize": 20
  }
}

绑定用户与空间模板

添加用户与某空间模板的关联关系

支持添加用户和批量模板之间的关系

/home/paas/user/spacetemplate/bind
  • 当前版本 1.0.1

入参

参数 类型 是否必填 备注
operator JSONObject 操作员,见“身份信息”定义
target JSONObject 要绑定的用户,见“身份信息”定义
spaceTemplateIdList JSONArray 空间模板ID

出参

返回结果使用通用结果类型,不使用data域,无值。

示例

假设用户A(用户账号ID为idxxx)要将空间模板a7513595381b40278e4dece21d9dd42e绑定到用户B(用户B账号ID为 idBBB),其请求参数如下:

请求示例

{
    "operator":{
      "hid":"idxxx",
      "hidType":"OPEN"
    },
    "target":{
      "hid":"idBBB",
      "hidType":"OPEN"
    },
    "spaceTemplateIdList": [
      "a7513595381b40278e4dece21d9dd42e"
    ]
  }
}

返回示例

{
  "code": 200,
  "message": "success"
}

解绑用户与空间模板

解绑用户与某空间模板的关联关系,是接口绑定用户与空间模板的逆向操作

支持解绑用户和批量模板之间的关系

/home/paas/user/spacetemplate/unbind
  • 当前版本 1.0.1

入参

参数 类型 是否必填 备注
operator JSONObject 操作员,见“身份信息”定义
target JSONObject 要解绑的用户,见“身份信息”定义
spaceTemplateIdList JSONArray 要删除的空间模板ID

出参

返回结果使用通用结果类型,不使用data域,无值。

示例

假设用户A(用户账号ID为idxxx)要将空间模板a7513595381b40278e4dece21d9dd42e和用户B(用户B账号ID为 idBBB) 进行解绑,其请求参数如下:

请求示例

{
  "operator": {
    "hid": "idxxx",
    "hidType": "OPEN"
  },
  "target": {
    "hid": "idBBB",
    "hidType": "OPEN"
  },
  "spaceTemplateIdList": [
    "a7513595381b40278e4dece21d9dd42e"
  ]
}

返回示例

{
  "code": 200,
  "message": "success"
}

根据空间模板创建空间

用户根据接口创建空间模板 创建的空间模板,可以生成空间,并将其挂靠在已有空间下

空间模板具有层级结构,支持生成级联空间,也支持仅生成当前一层空间

生成级联空间时,仅支持级联创建两级空间,即当前空间以及其下的一层子空间

同一空间下不允许有两个同名吗子空间

/home/paas/space/bytemplate/create
  • 当前版本 1.0.1

入参

参数 类型 必传 备注
operator JSONObject 操作员,见“身份信息”定义
templateCreationInfo JSONObject 根据空间模板创建空间参数

templateCreationInfo

字段名 类型 必传 备注
parentId String 父空间id,如果是要生成的空间实例直接挂在顶层空间,则该值等同于空间的rootSpaceId
spaceTemplateId String 空间模板ID
name String 生成的空间名称
cascade Boolean 默认false
fasle 只根据当前空间模板创建一个空间节点
true 根据当前空间模板及其子模板级联创建空间结构

出参

返回结果使用通用结果类型,data域是字符串,见下表的说明:

参数 类型 备注
data String 空间ID

示例

假设用户A(用户账号ID为idxxx)根据空间模板a7513595381b40278e4dece21d9dd42e生成名为“101房屋”的空间,并将其挂在已有空间b357227a99bb42dab7cf92ab98dc75b8下,其请求参数如下:

请求示例

{
  "operator": {
    "hid": "idxxx",
    "hidType": "OPEN"
  },
  "templateCreateInfo": {
    "parentId": "b357227a99bb42dab7cf92ab98dc75b8",
    "spaceTemplateId": "a7513595381b40278e4dece21d9dd42e",
    "name": "101房屋" 
  }
}

返回示例

{
    "code": 200,
    "data":"eb8e6bdc331b4b3296af354d69fb3da1",
  "message": "success"
}

查询空间模板的用户

查询与空间模板有绑定关系的用户列表。

/home/paas/spacetemplate/user/list
  • 当前版本 1.0.1

入参

参数 类型 是否必填 备注
operator JSONObject 操作员,见“身份信息”定义
spaceTemplateQuery JSONObject 空间模板查询条件

spaceTemplateQuery

字段名 类型 是否必填 备注
spaceTemplateId String 空间模板ID
pageNo String 请求的页码,见分页参数定义
pageSize Boolean 每页的记录数,见分页参数定义

出参

返回结果使用通用结果类型,data域是分页对象,见下表的详细说明:

参数 类型 备注
total Integer 总数
pageNo Integer 请求的页码
pageSize Integer 每页的记录数
data JSONArray 空间模板关联的用户信息
其定义参考 UserInfo

UserInfo

参数 类型 备注
hid String 用户身份id

示例

查询空间模板a7513595381b40278e4dece21d9dd42e关联的所有用户,其请求参数如下:

请求示例

{
   "operator": {
    "hid": "idxxx",
    "hidType": "OPEN"
  },
  "spaceTemplateQuery": {
     "spaceTemplateId": "a7513595381b40278e4dece21d9dd42e",
     "pageNo": 1,
     "pageSize": 20
  }
}

返回示例

{
  "code": 200,
  "data": {
    "data": [
      {
        "hid": "1111299939433"
      }
    ],
    "pageNo": 1,
    "pageSize": 20,
    "total": 1
  },
  "message": "success"
}

查询用户的空间模板

查询当前用户关联的空间模板列表。

返回使用接口绑定用户与空间模板建立的与用户有绑定关系的空间模板。

/home/paas/user/spacetemplate/list
  • 当前版本 1.0.1

入参

参数 类型 是否必填 备注
operator JSONObject 操作员,见“身份信息”定义
spaceTemplateQuery JSONObject 空间模板查询条件

spaceTemplateQuery

字段名 类型 是否必填 备注
pageNo String 请求的页码,见分页参数定义
pageSize Boolean 每页的记录数,见分页参数定义

出参

返回结果使用通用结果类型,data域是分页对象,见下表的详细说明:

参数 类型 备注
total Integer 总数
pageNo Integer 请求的页码
pageSize Integer 每页的记录数
data JSONArray 空间模板关联的用户信息
其定义参考 spaceTemplateInfo

spaceTemplateInfo

字段名 类型 字段名
spaceTemplateId String 空间模板ID
templateName String 空间名称
typeCode String 空间类型
path String 空间模板路径

示例

查询用户A(用户账号ID为idxxx)下的模板列表,其请求参数如下:

请求示例

{
   "operator": {
    "hid": "idxxx",
    "hidType": "OPEN"
  },
  "spaceTemplateQuery": {
     "pageNo": 1,
     "pageSize": 20
  }
}

返回示例

{
  "code": 200,
  "data": {
    "total": 1,
    "data": [
      {
        "path": "/a7513595381b40278e4dece21d9dd42e",
        "typeCode": "house",
        "templateName": "name1545021367",
        "spaceTemplateId": "a7513595381b40278e4dece21d9dd42e"
      }
    ],
    "pageNo": 1,
    "pageSize": 20
  }
}


results matching ""

    No results matching ""