Search Asset Tree¶
根据表达式搜索符合条件的资产树。
操作权限¶
需授权的资源 |
所需操作权限 |
---|---|
资产树管理 |
Read |
请求格式¶
POST https://{apigw-address}/asset-tree-service/v2.1/asset-trees?action=search
请求参数(URI)¶
名称 |
位置(Path/Query) |
必需/可选 |
数据类型 |
描述 |
---|---|---|---|---|
orgId |
Query |
必需 |
String |
资产所属的组织ID。如何获取orgId信息>> |
请求参数(body)¶
名称 |
必需/可选 |
数据类型 |
描述 |
---|---|---|---|
expression |
可选 |
String |
查询表达式,支持字段 |
pagination |
可选 |
Pagination请求结构体 |
用于在接口请求中描述分页要求。每页最大记录数为1000条。默认第一页,分页大小100。不支持使用 |
projection |
可选 |
Projection结构体 |
响应参数¶
名称 |
数据类型 |
描述 |
---|---|---|
data |
AssetTree结构体数组 |
有关AssetTree结构体的定义,参见下表。 |
名称 |
数据类型 |
描述 |
---|---|---|
treeId |
String |
资产树ID |
name |
StringI18n |
支持国际化的资产树名称。见 国际化名称结构体>> |
tags |
Tag结构体 |
用户自定义的一组资产树标签。 |
asset |
Asset结构体 |
资产树的根资产。参见 Asset结构体>> |
示例¶
请求示例¶
url: https://{apigw-address}/asset-tree-service/v2.1/asset-trees?action=search&orgId=yourOrgId
method: POST
requestBody:
{
"expression":"tags.k1 ='v1' ",
"pagination": {
"pageNo": 1,
"pageSize": 10
},
"projection": ["asset"]
}
返回示例¶
{
"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调用示例¶
import com.envision.apim.poseidon.core.Poseidon;
import com.envisioniot.enos.api.common.constant.request.Pagination;
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.AssetCreateVo;
import com.envisioniot.enos.asset_tree_service.vo.I18nVo;
import com.envisioniot.enos.asset_tree_service.vo.TreeCreateVo;
import com.envisioniot.enos.asset_tree_service.vo.TreeUpdateVo;
import org.junit.Test;
import java.util.HashMap;
import java.util.Map;
public class AssetTreeTest {
private static String AccessKey = "yourAccessKey";
private static String SecretKey = "yourSecretKey";
private static String OrgId = "yourOrgId";
private static String ServerUrl = "yourServerUrl";
@Test
public void testSearchTree() {
SearchAssetTreeRequest request = new SearchAssetTreeRequest();
request.setOrgId(OrgId);
request.setExpression("tags.k1 ='v1'");
Pagination pagination = new Pagination(3, 1, null);
Projection projection = new Projection();
projection.add("asset");
request.setPagination(pagination);
request.setProjection(projection);
SearchAssetTreeResponse response = Poseidon.config(PConfig.init().appKey(AccessKey).appSecret(SecretKey).debug())
.url(ServerUrl)
.getResponse(request, SearchAssetTreeResponse.class);
}
}