Get Asset Trees¶
根据一组assetId
搜索资产所在的资产树。若assetId
不在树上,则data
中无该key。
操作权限¶
需授权的资源 |
所需操作权限 |
---|---|
资产树管理 |
Read |
请求格式¶
POST https://{apigw-address}/asset-tree-service/v2.1/asset-nodes?action=getAssetTree
请求参数(URI)¶
名称 |
位置(Path/Query) |
必需/可选 |
数据类型 |
描述 |
---|---|---|---|---|
orgId |
Query |
必需 |
String |
资产所属的组织ID。如何获取orgId信息>> |
请求参数(Body)¶
名称 |
必需/可选 |
数据类型 |
描述 |
---|---|---|---|
assetIds |
必需 |
String数组 |
一组资产ID,最多100个。如何获取Asset ID信息>> |
projection |
可选 |
Projection结构体 |
用于在接口请求中描述待返回的对象projection。详见 projection参数如何对结果集做裁剪>> |
响应参数¶
名称 |
数据类型 |
描述 |
---|---|---|
data |
Map(Key为assetId,Value为AssetTree结构体Array) |
资产和其所在的资产树列表。见 AssetTree结构体>> |
AssetTree结构体¶
名称 |
数据类型 |
描述 |
---|---|---|
treeId |
String |
资产树ID。 |
tags |
Map<Key为String, Value为String> |
用户自定义的一组资产树标签。详情请见 标签的作用与表示方法>> |
asset |
Asset 结构体 |
资产树上的根资产。 |
错误码¶
代码 |
错误类型 |
描述 |
---|---|---|
99400 |
Invalid arguments |
请求参数非法,请检查请求参数。 |
99500 |
System error |
服务器内部错误,请联系EnOS。 |
示例¶
请求示例¶
url: https://{apigw-address}/asset-tree-service/v2.1/asset-nodes?action=getAssetTree&orgId=yourOrgId
method: POST
requestBody:
{
"action": "getAssetTree",
"assetIds": ["yourAssetId1", "yourAssetId2"]
}
返回示例¶
{
"code": 0,
"msg": "OK",
"requestId": "82248518-6da4-49d2-8d07-cf7a0ff55b60",
"data": {
"BtsYmF2r" : [{
"treeId" : "yourTreeId",
"tags" : { },
"asset": {
"modelId": "yourModelId",
"assetId": "yourAssetId",
"timezone": "+08:00",
"name": {
"i18nValue": {
"en_US": "zmTree604111zzz"
},
"defaultValue": "zmTree604"
},
"description": "",
"attributes": {},
"inValid": false,
"label": "1",
"modelIdPath": "/NULLMODEL",
"tags": {}
}}
]
}
}
Java SDK调用示例¶
package com.envisioniot.enos.asset_tree_service;
import com.envision.apim.poseidon.config.PConfig;
import com.envision.apim.poseidon.core.Poseidon;
import com.envisioniot.enos.api.common.constant.request.Projection;
import com.envisioniot.enos.asset_tree_service.v2_1.*;
import com.envisioniot.enos.asset_tree_service.vo.RelatedAssetSearchVo;
import org.junit.Test;
import java.util.Arrays;
public class SearchNodeTest {
private static String AccessKey = "yourAccessKey";
private static String SecretKey = "yourSecretKey";
private static String OrgId = "yourOrgId";
private static String ServerUrl = "yourServerUrl";
@Test
public void testSearchTreeByAssetId() throws Exception {
SearchAssetTreeByAssetIdsRequest request = new SearchAssetTreeByAssetIdsRequest();
request.setOrgId(OrgId);
request.setAssetIds(Arrays.asList("assetId1", "assetId2"));
SearchAssetTreeByAssetIdsResponse response =
Poseidon.config(PConfig.init().appKey(AccessKey).appSecret(SecretKey).debug()).url(ServerUrl)
.getResponse(request, SearchAssetTreeByAssetIdsResponse.class);
System.out.println(response.getData());
}
}