空间模板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
}
}