全部产品

边缘应用空间管理对接

更新时间:2020-03-19 14:47:08

1.整体介绍

本章主要介绍智能边缘一体机集群中对应的空间接口的接入API,其中:
1.云端:提供云端的SDK API给到ISV用于管理态的应用空间权限的管理。
2.同步:平台通过云->边同步机制,把云端的应用的空间数据关系同步到边缘集群。
3.边侧:提供边侧的SDK API给到ISV用于运行态的边侧的空间校验。
请求方式:请求方式为post请求,请求内容为json格式放到请求的body中。
请求路径为:url为${xxx}/space/${apiName}, 其中${xxx}为边缘的请求根目录;${apiName}为下文中的api名称。

2.云端API

2.1 园区空间开放服务

具体API可以参考现有云端API文档中的空间开发服务部分:
https://dev.iot.aliyun.com/api_center

2.2 获取设备信息接口

用于获取项目下所有已绑定空间的设备信息接口信息。

接口描述

API版本 1.0.1
授权类型 APPSIGN
协议 HTTPS
请求方法 Post
域名(环境变量中获取) api.link.aliyun.com
路径 /campus/paas/openapi/space/device/list

入参说明

入参名称 数据类型 是否必须 入参描述
appId 字符串 -
pageNo 整形 1
pageSize 整形 20
categoryKey 字符串 -
spaceId 字符串 -
appId 字符串 -

具体复杂数组可参照接口文档:获取项目下所有已绑定空间的设备信息接口

出参列表

出参名称 数据类型 出参描述
code 整形 响应码, 200: 成功
message 字符串 错误消息
localizedMsg 字符串 本地语言错误消息
data 长整型 响应结果 返回的长整型数据是增加的数据的id

请求示例

  1. /**
  2. * 系统环境变量中获取的
  3. */
  4. public static final String appkey = System.getenv("iot.hosting.appKey");
  5. public static final String appSecret = System.getenv("iot.hosting.appSecret");
  6. public static void main(String[] args) throws UnsupportedEncodingException {
  7. IoTApiClientBuilderParams ioTApiClientBuilderParams =
  8. new IoTApiClientBuilderParams();
  9. ioTApiClientBuilderParams.setAppKey("你的<AppKey>");
  10. ioTApiClientBuilderParams.setAppSecret("你的<AppSecret>");
  11. SyncApiClient syncClient = new SyncApiClient(ioTApiClientBuilderParams);
  12. IoTApiRequest request = new IoTApiRequest();
  13. //设置api的版本
  14. request.setApiVer("0.0.3");
  15. //如果需要登陆,设置当前的会话的token
  16. request.setIotToken("xxxxxxxxxxxxxxx");
  17. // 接口参数
  18. request.putParam("appId","value1");
  19. request.putParam("pageNo","value2");
  20. request.putParam("pageSize","value3");
  21. request.putParam("categoryKey","value4");
  22. request.putParam("spaceId","value5");
  23. //请求参数域名、path、request
  24. ApiResponse response = syncClient.postBody("api.link.aliyun.com",
  25. "/user/rbac/permission/batchcreate", request, true);
  26. System.out.println( "response code = " + response.getCode()
  27. + " response = " + new String(response.getBody(), "UTF-8"));
  28. }

返回结果示例 JSON

  1. {
  2. "code": 200,
  3. "data": {
  4. "data": [
  5. {
  6. "categoryKey": "Gateway",
  7. "deviceName": "xxxxxxxxxx",
  8. "productKey": "xxxxxxxxxx",
  9. "productName": "xxxxxxxxxx",
  10. "spacePath": "/xxxxxxxxxx/xxxxxxxxxx/"
  11. },
  12. {
  13. "categoryKey": "Curtain",
  14. "deviceName": "xxxxxxxxxx",
  15. "productKey": "xxxxxxxxxx",
  16. "productName": "xxxxxxxxxx",
  17. "spacePath": "/xxxxxxxxxx/xxxxxxxxxx/"
  18. }
  19. ],
  20. "pageNo": 1,
  21. "pageSize": 20,
  22. "total": 100
  23. },
  24. "message": "success"
  25. }

失败返回结果示例 JSON

  1. {
  2. "code": 28402,
  3. "localizedMsg": "无权访问该项目",
  4. "message": "no access to the project"
  5. }

2.3 UpdateCampusSpace

  • API版本:1.0.0
  • 授权类型:APPSIGN
  • 协议:HTTPS
  • 请求方法:POST
  • 域名:api.link.aliyun.com
  • 路径:/campus/paas/openapi/space/update
  • API描述:更新指定空间的详情内容
  • 版本描述:初始化版本

入参列表

入参名称 数据类型 是否必须 缺省默认值 入参示例 入参描述
appId 字符串 - - 统一应用id
—- —- —- —- —- —-
spaceInfo 复杂对象 - - 待更新的空间内容

出参列表

出参名称 数据类型 出参描述
code 整形 响应码, 200: 成功
—- —- —-
message 字符串 错误消息
localizedMsg 字符串 本地语言错误消息

请求示例

  1. // https://github.com/aliyun/iotx-api-gateway-client
  2. public static void main(String[] args) throws UnsupportedEncodingException {
  3. IoTApiClientBuilderParams ioTApiClientBuilderParams =
  4. new IoTApiClientBuilderParams();
  5. ioTApiClientBuilderParams.setAppKey("你的<AppKey>");
  6. ioTApiClientBuilderParams.setAppSecret("你的<AppSecret>");
  7. SyncApiClient syncClient = new SyncApiClient(ioTApiClientBuilderParams);
  8. IoTApiRequest request = new IoTApiRequest();
  9. //设置api的版本
  10. request.setApiVer("1.0.0");
  11. request.setId("42423423");
  12. //如果需要登陆,设置当前的会话的token
  13. request.setIotToken("xxxxxxxxxxxxxxx");
  14. // 接口参数
  15. request.putParam("appId","value1");
  16. request.putParam("spaceInfo","value2");
  17. //请求参数域名、path、request
  18. ApiResponse response = syncClient.postBody("api.link.aliyun.com",
  19. "/campus/paas/openapi/space/update", request, true);
  20. System.out.println( "response code = " + response.getCode()
  21. + " response = " + new String(response.getBody(), "UTF-8"));
  22. }

返回结果示例 JSON

  1. {
  2. "id": "4de2c367-c1db-417c-aa15-8c585e595d92",
  3. "code": 200,
  4. "message": null,
  5. "localizedMsg": null,
  6. "data": null
  7. }

失败返回结果示例 JSON

  1. {
  2. "id": "37f7e5fa-d6a5-4efe-8abf-5bf23dca6284",
  3. "code": 403,
  4. "message": "request forbidden.",
  5. "localizedMsg": "请求被禁止",
  6. "data": null
  7. }

2.4 DeleteCampusSpace

  • API版本:1.0.0
  • 授权类型:APPSIGN
  • 协议:HTTPS
  • 请求方法:POST
  • 域名:api.link.aliyun.com
  • 路径:/campus/paas/openapi/space/delete复制
  • API描述:删除园区行业指定的空间及空间下属资源
  • 版本描述:初始化版本

入参列表

入参名称 数据类型 是否必须 缺省默认值 入参示例 入参描述
appId 字符串 - - 统一应用id
—- —- —- —- —- —-
spaceIds 复杂对象数组 - - 待删除的空间列表

出参列表

出参名称 数据类型 出参描述
code 整形 响应码, 200: 成功
—- —- —-
message 字符串 错误消息
localizedMsg 字符串 本地语言错误消息
data 复杂对象数组 响应结果

请求示例

  1. // https://github.com/aliyun/iotx-api-gateway-client
  2. public static void main(String[] args) throws UnsupportedEncodingException {
  3. IoTApiClientBuilderParams ioTApiClientBuilderParams =
  4. new IoTApiClientBuilderParams();
  5. ioTApiClientBuilderParams.setAppKey("你的<AppKey>");
  6. ioTApiClientBuilderParams.setAppSecret("你的<AppSecret>");
  7. SyncApiClient syncClient = new SyncApiClient(ioTApiClientBuilderParams);
  8. IoTApiRequest request = new IoTApiRequest();
  9. //设置api的版本
  10. request.setApiVer("1.0.0");
  11. request.setId("42423423");
  12. //如果需要登陆,设置当前的会话的token
  13. request.setIotToken("xxxxxxxxxxxxxxx");
  14. // 接口参数
  15. request.putParam("appId","value1");
  16. request.putParam("spaceIds","value2");
  17. //请求参数域名、path、request
  18. ApiResponse response = syncClient.postBody("api.link.aliyun.com",
  19. "/campus/paas/openapi/space/delete", request, true);
  20. System.out.println( "response code = " + response.getCode()
  21. + " response = " + new String(response.getBody(), "UTF-8"));
  22. }

返回结果示例 JSON

  1. {
  2. "id": "4de2c367-c1db-417c-aa15-8c585e595d92",
  3. "code": 200,
  4. "message": null,
  5. "localizedMsg": null,
  6. "data": []
  7. }

失败返回结果示例 JSON

  1. {
  2. "id": "37f7e5fa-d6a5-4efe-8abf-5bf23dca6284",
  3. "code": 403,
  4. "message": "request forbidden.",
  5. "localizedMsg": "请求被禁止",
  6. "data": null
  7. }

3.云端和边缘端数据同步API

地产平台通过封装LP云边同步能力,对外开放如下API:
0、获取边缘集群列表
1、数据同步预检查
2、触发数据同步
3、数据同步结果查询

3.1接口定义

分页参数会出现在请求参数和返回结果中,用于下文中API调用参照.

  • 在请求参数中代表请求分页的页数(pageNo)和每页的记录数(pageSize);
  • 在响应结果中的页数(pageNo)和每页的记录数(pageSize)与请求参数一致,同时还有total字段代表数据总数。

所有的分页接口除特殊说明外,都遵循下面的约束

参数 类型 备注
pageNo Integer 请求的页码
非必填,默认为1,有效范围 [1, ∞)
pageSize Integer 每页的记录数
非必填,默认为20,有效范围[1,100]

获取集群列表

接口定义

path 版本 是否需要登录
/home/paas/cluster/edge/query 1.0.0

入参

字段 类型 是否必传 备注
pageNo Integer 请求的页码,详细见详细见上述的分页参数定义。
pageSize Integer 每页的记录数,详细见详细见上述的分页参数定义。

出参

字段 类型 备注
code Integer 返回码
message String 返回信息
data JSONObject
-data ClusterDTOList 分页数据对象列表ClusterDTOList
-pageNo Integer 请求的页码,详细见详细见上述的分页参数定义。
-pageSize Integer 请求的页码,详细见详细见上述的分页参数定义。
-total Integer 总记录数

分页数据对象ClusterDTOList

id String 集群ID
name String 集群名称
gmtCreate String 集群创建时间
gmtModified String 集群修改时间

示例

请求示例

  1. {
  2. "pageNo":1,
  3. "pageSize":20
  4. }

返回示例

  1. {
  2. "code": 200,
  3. "message": null,
  4. "localizedMsg": null,
  5. "data":{
  6. "pageNo": 1,
  7. "pageSize": 20,
  8. "total": 10,
  9. "data":[{
  10. "id": "xxx",
  11. "name": "cluster01",
  12. "gmtCreate": "2020-03-04 18:00:00",
  13. "gmtModified": "2020-03-04 18:00:00"
  14. }]
  15. }
  16. }

数据同步预检查

接口定义

path 版本 是否需要登录
/home/paas/data/edge/sync/precheck 1.0.0

入参

字段 类型 是否必传 备注
clusterId String 集群ID
opsType String SYNC_DATA - 同步数据
CLEAR_DATA - 清理数据
dataTypeList JSONArray 数据类型列表

出参

字段 类型 备注
code Integer 返回码
message String 返回信息
data String SYNCING - 同步中
NO - 不需要同步
YES - 需要同步

示例

请求示例

  1. {
  2. "clusterId": "xxx",
  3. "opsType": "SYNC_DATA",
  4. "dataTypeList": [
  5. "ACCOUNT",
  6. "SPACE"
  7. "RTPC"
  8. "ALARM"
  9. ]
  10. }

返回示例

  1. {
  2. "code": 200,
  3. "message": null,
  4. "localizedMsg": null,
  5. "data": "XXX"
  6. }

触发数据同步

接口定义

path 版本 是否需要登录
/home/paas/data/edge/sync/dispatch 1.0.0

入参

字段 类型 是否必传 备注
clusterId String 集群ID
opsType String SYNC_DATA - 同步数据
CLEAR_DATA - 清理数据
dataTypeList JSONArray 数据类型列表

出参

字段 类型 备注
code Integer 返回码
message String 返回信息
data String taskGroupId - 任务组ID

示例

请求示例

  1. {
  2. "clusterId": "xxx",
  3. "opsType": "SYNC_DATA",
  4. "dataTypeList": [
  5. "ACCOUNT",
  6. "SPACE"
  7. ]
  8. }

返回示例

  1. {
  2. "code": 200,
  3. "message": null,
  4. "localizedMsg": null,
  5. "data": "XXX"
  6. }

根据数据同步请求查询结果

接口定义

path 版本 是否需要登录
/home/paas/data/edge/sync/query 1.0.0

入参

字段 类型 是否必传 备注
clusterId String 集群ID
opsType String SYNC_DATA - 同步数据
CLEAR_DATA - 清理数据
dataTypeList JSONArray 数据类型列表

出参

字段 类型 备注
code Integer 返回码
message String 返回信息
data JSONObject
-dataSyncStatus String 同步的结果
NONE - 无任务
SYNCING - 同步中
SUCCESS - 同步成功
FAIL - 同步失败
-preCheckResult String 是否需要同步SYNCING - 同步中
NO - 不需要同步
YES - 需要同步
-taskGroupId String 任务组id,便于工单排查

示例

请求示例

  1. {
  2. "clusterId": "xxx",
  3. "opsType": "SYNC_DATA",
  4. "dataTypeList": [
  5. "ACCOUNT",
  6. "SPACE"
  7. ]
  8. }

返回示例

  1. {
  2. "code": 200,
  3. "message": null,
  4. "localizedMsg": null,
  5. "data": {
  6. "dataSyncStatus": "SUCCESS",
  7. "preCheckResult": "NO",
  8. "taskGroupId": "XXX"
  9. }
  10. }

根据任务组查询数据同步结果

接口定义

path 版本 是否需要登录
/home/paas/data/edge/sync/querybytaskgroupid 1.0.0

入参

字段 类型 是否必传 备注
taskGroupId String 任务组ID

出参

字段 类型 备注
code Integer 返回码
message String 返回信息
data String 同步的结果
NONE - 无任务
SYNCING - 同步中
SUCCESS - 同步成功
FAIL - 同步失败

示例

请求示例

  1. {
  2. "clusterId": "xxx",
  3. "opsType": "SYNC_DATA",
  4. "dataTypeList": [
  5. "ACCOUNT",
  6. "SPACE"
  7. ]
  8. }

返回示例

  1. {
  2. "code": 200,
  3. "message": null,
  4. "localizedMsg": null,
  5. "data": "SUCCESS"
  6. }

4.边缘端空间调用API

4.1 引入api gateway

  1. <dependency>
  2. <groupId>com.aliyun.iotx</groupId>
  3. <artifactId>iotx-api-gateway-client</artifactId>
  4. <version>${latest.version}</version>
  5. </dependency>

4.2 接口列表

4.2.1 查询根节点

API path:api/space/listRootSpace
请求入参:无

请求出参

SpaceDTO:

字段 类型 描述
namePath String 空间路径名称
typeCodePath String 空间路径code
countryName String 国家
countryCode String 国家代码
provinceName String
provinceCode String 省代码
cityName String 城市
cityCode String 城市代码
regionName String 区域
regionCode String 区域代码
address String 地址
id String 空间id
attribute String 空间属性
gmtCreate Date 创建时间
creatorType String 创建人类型
creatorId String 创建人id
gmtModified Date 修改时间
modifierType String 修改人类型
modifierId String 修改人id
creatorNickName String 创建人昵称(如果创建人是identityId则有值)
modifierNickName String 修改人昵称(如果修改人是identityId则有值)
parentId String 上级空间id
businessId String 业务id
name String 空间名称
path String 空间路径(/pid/pid/pid/pid/
description String 空间描述
typeCode String 空间类型代码
usesCode String 空间用途代码
usesName String 空间用途名称
typeName String 空间类型名称
geoDTO GeoDTO 空间几何信息
poiCode String 空间编码不含父子级
bizType String 业务类型
poiCodePath String 空间编码含父子级
hasChild Boolean 是否包含下级空间节点
hasDeviceChild Integer 空间是否包含设备(1:有 ,0 :没有)
status Integer 空间状态(1: 启用, 0:停用)
spaceSope Integer 公有(0)、私有(1)

出参示例

  1. {
  2. "code":200,
  3. "data":[
  4. {
  5. "bizType":"campus",
  6. "businessId":"AutoTestRootSpace_businessId",
  7. "cityName":"hangzhou",
  8. "countryName":"china",
  9. "gmtCreate":157426616****,
  10. "gmtModified":157426619****,
  11. "hasChild":true,
  12. "hasDeviceChild":0,
  13. "id":"ba91edc1ec9b42b49b767c0f4299ee8e",
  14. "name":"test_create_by_diyang",
  15. "namePath":"/test_create_by_diyang/",
  16. "path":"/ba91edc1ec9b42b49b767c0f4299ee8e/",
  17. "poiCode":"D36****",
  18. "poiCodePath":"D36****",
  19. "provinceName":"zhejiang",
  20. "regionName":"ali",
  21. "spaceScope":1,
  22. "status":1,
  23. "typeCode":"default",
  24. "typeCodePath":"/default/",
  25. "typeName":"根空间"
  26. }
  27. ],
  28. "message":"success"
  29. }

4.2.2 查询子节点列表

API path: /api/space/listChildSpaces

请求入参

listChildSpaceRqquest:

字段 类型 描述 是否必填
tenantId String 租户id
scopeId String 隔离id
parentSpaceId String 父节点id

入参示例

  1. {
  2. //"tenantId": "xxx",
  3. //"scopeId": "xxx",
  4. "parentSpaceId":"ba91edc1ec9b42b49b767c0f4299ee8e"
  5. }

请求出参

出参示例可参考:4.2.1节

出参示例

出参示例可参考:4.2.1节

4.2.3 查询父节点

通过节点的parentId,可参考:4.2.5节,查询父节点信息。

4.2.4 查询节点关联设备

API path:/api/space/listRelationsInSpace

请求入参

listRelationsInSpaceRequest:

字段 类型 描述 是否必填
tenantId String 租户id
scopeId String 隔离id
spaceId String 空间id
relationType String 一般为device
queryDTO RelationQueryDTO 查询条件
pageNo Integer 分页编号
pageSize Integer 页大小

入参示例

  1. {
  2. "spaceId": "xxxx",
  3. "relationType": { //可选
  4. "name": "xxx", //可选
  5. "userValue1": "xxx",//可选
  6. "userValue2": "xxx",//可选
  7. "userValue3": "xxx"//可选
  8. },
  9. "relationType": "device",
  10. "pageNo": 1,
  11. "pageSize": 20
  12. }

请求出参

RelationObjectDTO:

字段 类型 描述
relObjectId String 绑定关系的id,如iotId,机构id等
name String 空间绑定关系名称
userValue1 String 用户自定义值
userValue2 String 用户自定义值
userValue3 String 用户自定义值

出参示例

  1. {
  2. "code":200,
  3. "data":{
  4. "data":[
  5. {
  6. "relObjectId":"k1p65dIAOUTrVAe5mMSq0010134f10",
  7. "name":"设备1",
  8. "userValue1": "pk", // userValue1的值为pk
  9. "userValue2": "dn" //userValue2的值为dn
  10. },
  11. {
  12. "relObjectId":"wA8pfQ9c70GV5yelZR9U00104a3010",
  13. "name":"设备2",
  14. "userValue1": "pk",
  15. "userValue2": "dn"
  16. },
  17. {
  18. "relObjectId":"FFRHnW4pNpJGefMCG8KA00109dd310",
  19. "name":"设备3",
  20. "userValue1": "pk",
  21. "userValue2": "dn"
  22. },
  23. {
  24. "relObjectId":"YtpNR4frO3DO5noJYT7H0010314f10",
  25. "name":"设备4",
  26. "userValue1": "pk",
  27. "userValue2": "dn"
  28. },
  29. {
  30. "relObjectId":"1AW27LWwOzE6wbwxUM8N001069f710",
  31. "name":"设备4",
  32. "userValue1": "pk",
  33. "userValue2": "dn"
  34. }
  35. ],
  36. "offset":0,
  37. "pageNo":1,
  38. "pageSize":20,
  39. "total":5
  40. },
  41. "message":"success"
  42. }

4.2.5 查询节点信息

API path:/api/space/listSpaceByIds

请求入参

listSpaceByIdRequest:

字段 类型 描述 是否必填
tenantId String 租户id
scopeId String 隔离id
spaceIdList List 空间id列表

入参示例

  1. {
  2. //"tenantId":"xxx",
  3. //"scopeId":"xxx",
  4. "spaceIdList": [
  5. "xxxxx",
  6. "xxxxx",
  7. "xxxxx"
  8. ]
  9. }

出参示例可参考:4.2.1节出参示例可参考:4.2.1节

4.2.6 查询设备关联节点

API path:/api/space/listSpaceByRelationId

请求入参

listSpaceByRelationIdRequest:

字段 类型 描述 是否必填
tenantId String 租户id
scopeId String 隔离id
productKey String 设备pk
deviceName String 设备dn

入参示例

  1. {
  2. //"tenantId": "xxx",
  3. //"scopeId": "xxx",
  4. "rootSpaceId": "xxx",
  5. "userValue1": "pk1",
  6. "userValue2": "dn1"
  7. }

出参示例可参考:4.2.1节出参示例可参考:4.2.1节

  1. {
  2. "code":200,
  3. "data":[
  4. {
  5. "bizType":"home",
  6. "creatorId":"digital_community",
  7. "creatorType":"SYSTEM",
  8. "gmtCreate":1541406705000,
  9. "gmtModified":1541772352000,
  10. "hasChild":true,
  11. "hasDeviceChild":1,
  12. "id":"d01e5eb6c84b41eb86015b04ffc2a510",
  13. "modifierId":"digital_community",
  14. "modifierType":"SYSTEM",
  15. "name":"1",
  16. "namePath":"/丽城154140****/1/",
  17. "parentId":"d07e1f60510f4b8d85defb8bb6b84db6",
  18. "path":"/d07e1f60510f4b8d85defb8bb6b84db6/d01e5eb6c84b41eb86015b04ffc2a510/",
  19. "poiCode":"01",
  20. "poiCodePath":"01",
  21. "spaceScope":1,
  22. "status":1,
  23. "typeCode":"building",
  24. "typeCodePath":"/default/building/",
  25. "typeName":"幢",
  26. "usesCode":"flat_layer",
  27. "usesName":"平层"
  28. }
  29. ],
  30. "message":"success"
  31. }

4.2.7 空间全量分页接口

API path

api/space/listSpaceByPage

请求入参

字段 类型 描述 是否必填
pageNo Integer 分页编号
pageSize Integer 页大小

出参实例

根据本次请求list的size是否小于pageSize决定是否需要进行下一次请求。

  1. {
  2. "code":200,
  3. "data":[
  4. {
  5. "bizType":"campus",
  6. "businessId":"AutoTestRootSpace_businessId",
  7. "cityName":"hangzhou",
  8. "countryName":"china",
  9. "gmtCreate":157426616****,
  10. "gmtModified":157426619****,
  11. "hasChild":true,
  12. "hasDeviceChild":0,
  13. "id":"ba91edc1ec9b42b49b767c0f4299ee8e",
  14. "name":"test_create_by_diyang",
  15. "namePath":"/test_create_by_diyang/",
  16. "path":"/ba91edc1ec9b42b49b767c0f4299ee8e/",
  17. "poiCode":"D36****",
  18. "poiCodePath":"D36****",
  19. "provinceName":"zhejiang",
  20. "regionName":"ali",
  21. "spaceScope":1,
  22. "status":1,
  23. "typeCode":"default",
  24. "typeCodePath":"/default/",
  25. "typeName":"根空间"
  26. },
  27. {
  28. "bizType":"home",
  29. "creatorId":"digital_community",
  30. "creatorType":"SYSTEM",
  31. "gmtCreate":154140670****,
  32. "gmtModified":154177235****,
  33. "hasChild":true,
  34. "hasDeviceChild":1,
  35. "id":"d01e5eb6c84b41eb86015b04ffc2a510",
  36. "modifierId":"digital_community",
  37. "modifierType":"SYSTEM",
  38. "name":"1",
  39. "namePath":"/丽城154140****/1/",
  40. "parentId":"d07e1f60510f4b8d85defb8bb6b84db6",
  41. "path":"/d07e1f60510f4b8d85defb8bb6b84db6/d01e5eb6c84b41eb86015b04ffc2a510/",
  42. "poiCode":"01",
  43. "poiCodePath":"01",
  44. "spaceScope":1,
  45. "status":1,
  46. "typeCode":"building",
  47. "typeCodePath":"/default/building/",
  48. "typeName":"幢",
  49. "usesCode":"flat_layer",
  50. "usesName":"平层"
  51. ],
  52. "message":"success"
  53. }

4.2.8 空间设备关系全量接口

API path

api/space/listRelationByPage

请求入参

同上

请求出参

List

RelationObjectDTO

字段 类型 描述
relObjectId String 绑定关系的id,如iotId,机构id等
name String 空间绑定关系名称
userValue1 String 用户自定义值
userValue2 String 用户自定义值
userValue3 String 用户自定义值
poiId String 空间id

出参示例

  1. {
  2. "code":200,
  3. "data":{
  4. "data":[
  5. {
  6. "relObjectId":"k1p65dIAOUTrVAe5mMSq0010134f10",
  7. "name":"设备1",
  8. "userValue1": "pk", // userValue1的值为pk
  9. "userValue2": "dn", //userValue2的值为dn
  10. "poiId": "asdioqhwfsaopaosdk"
  11. },
  12. {
  13. "relObjectId":"wA8pfQ9c70GV5yelZR9U00104a3010",
  14. "name":"设备2",
  15. "userValue1": "pk",
  16. "userValue2": "dn",
  17. "poiId": "asdioqhwfsaopaosdk"
  18. },
  19. {
  20. "relObjectId":"FFRHnW4pNpJGefMCG8KA00109dd310",
  21. "name":"设备3",
  22. "userValue1": "pk",
  23. "userValue2": "dn",
  24. "poiId": "asdioqhwfsaopaosdk"
  25. },
  26. {
  27. "relObjectId":"YtpNR4frO3DO5noJYT7H0010314f10",
  28. "name":"设备4",
  29. "userValue1": "pk",
  30. "userValue2": "dn",
  31. "poiId": "asdioqhwfsaopaosdk"
  32. },
  33. {
  34. "relObjectId":"1AW27LWwOzE6wbwxUM8N001069f710",
  35. "name":"设备4",
  36. "userValue1": "pk",
  37. "userValue2": "dn",
  38. "poiId": "asdioqhwfsaopaosdk"
  39. }
  40. ]
  41. },
  42. "message":"success"
  43. }

4.2.8 节点变更通知

MQ Topic:
空间变更:IOTX_EDGE_SPACE_CHANGE
空间设备关系变更:IOTX_EDGE_SPACE_RELATION_CHANGE

请求出参

SpaceDTO:

字段 类型 描述
namePath String 空间路径名称
typeCodePath String 空间路径code
countryName String 国家
countryCode String 国家代码
provinceName String
provinceCode String 省代码
cityName String 城市
cityCode String 城市代码
regionName String 区域
regionCode String 区域代码
address String 地址
id String 空间id
attribute String 空间属性
gmtCreate Date 创建时间
creatorType String 创建人类型
creatorId String 创建人id
gmtModified Date 修改时间
modifierType String 修改人类型
modifierId String 修改人id
creatorNickName String 创建人昵称(如果创建人是identityId则有值)
modifierNickName String 修改人昵称(如果修改人是identityId则有值)
parentId String 上级空间id
businessId String 业务id
name String 空间名称
path String 空间路径(/pid/pid/pid/pid/
description String 空间描述
typeCode String 空间类型代码
usesCode String 空间用途代码
usesName String 空间用途名称
typeName String 空间类型名称
geoDTO GeoDTO 空间几何信息
poiCode String 空间编码不含父子级
bizType String 业务类型
poiCodePath String 空间编码含父子级
hasChild Boolean 是否包含下级空间节点
hasDeviceChild Integer 空间是否包含设备(1:有 ,0 :没有)
status Integer 空间状态(1: 启用, 0:停用)
spaceSope Integer 公有(0)、私有(1)

空间设备关系变更:IOTX_EDGE_SPACE_RELATION_CHANGE
消息体结构:

  1. {
  2. "gmtCreate":158234186****,
  3. "gmtModified":157483210****,
  4. "id":"0001b934588f49adb943fb44ec8c8125",
  5. "isDeleted":0,
  6. "modifierId":"50fcop67d46cea7b79000ad357273f39904b6630",
  7. "modifierType":"identityId",
  8. "poiId":"0fb31ec0a3594035b124b1517647f3d5",
  9. "relationObjId":"2d659c93256f41acbbd85f56fc46f10c",
  10. "relationType":"device",
  11. "scopeId":"a103gPpCWWiBpbbL",
  12. "tenantId":"B4392202C5ED41F596EE1100AE573D9B",
  13. "tmpStr1":"a12vqRtzA1q",
  14. "tmpStr2":"SmartDoor"
  15. }