- 文档
- 资产树节点
- Search Related Asset Node
Search Related Asset Node¶
查询指定资产树上的资产,指定相对于某个已知资产的关系作为查询条件。
操作权限¶
需授权的资源 |
所需操作权限 |
---|---|
资产树管理 |
Read |
请求格式¶
POST https://{apigw-address}/asset-tree-service/v2.1/asset-nodes?action=searchRelatedAsset
请求参数(URI)¶
名称 |
位置(Path/Query) |
必需/可选 |
数据类型 |
描述 |
---|---|---|---|---|
orgId |
Query |
必需 |
String |
资产所属的组织ID。如何获取orgId信息>> |
treeId |
Query |
必需 |
String |
需要获取的资产树ID。如何获取资产树信息ID>> |
请求参数(Body)¶
名称 |
必需/可选 |
数据类型 |
描述 |
---|---|---|---|
filter |
可选 |
Filter结构体 |
资产的查询条件。 所有的条件都是可选的。 所有指定的条件之间都是“与”关系,即待查询的资产必须同时满足所有指定的条件。 4个关系查询条件至多提供一个,见 Filter结构体>> |
pagination |
可选 |
Pagination请求结构体 |
用于在接口请求中描述分页要求。每页最大记录数为1000条。默认第一页,分页大小为100条记录。不支持使用 |
projection |
可选 |
Projection结构体 |
用于在接口请求中描述待返回的对象projection。详见 projection参数如何对结果集做裁剪>> |
Filter 结构体 ¶
备注
isParentOfAssetId
、isChildOfAssetId
、isAncestorOfAssetId
和 isDescendantOfAssetId
不能同时填写多个,每次查询最多支持 1 个。
名称 |
必需/可选 |
数据类型 |
描述 |
---|---|---|---|
assetIds |
可选 |
String数组 |
资产ID。如果想查询多个资产,就提供多个资产ID。如何获取Asset ID信息>> |
nameLike |
可选 |
I18nSearchVo结构体 |
资产名称,支持模糊搜索。其结构参见 I18nSearchVo 结构体。 |
modelIds |
可选 |
String数组 |
资产所属模型ID。如果想查询多个模型,就提供多个模型ID 如何获取modelId信息>> |
rootModelIds |
可选 |
String数组 |
资产所属的根模型ID。如果想查询多个根模型,就提供多个根模型ID。 |
isParentOfAssetId |
可选(见上述注解) |
String |
待查询的资产是指定资产的直接父节点,值为指定资产的资产ID。如何使用查询表达式>> |
isChildOfAssetId |
可选(见上述注解) |
String |
待查询的资产是指定资产的直接子节点,值为指定资产的资产ID。如何使用查询表达式>> |
isAncestorOfAssetId |
可选(见上述注解) |
String |
待查询的资产是指定资产的祖先节点,值为指定资产的资产ID。如何使用查询表达式>> |
isDescendantOfAssetId |
可选(见上述注解) |
String |
待查询的资产是指定资产的子孙节点,值为指定资产的资产ID。如何使用查询表达式>> |
I18nSearchVo 结构体 ¶
名称 |
必需/可选 |
数据类型 |
描述 |
---|---|---|---|
locale |
可选 |
String |
语言类型,只支持default、zh_CN和en_US。 |
value |
可选 |
String |
资产名称在所属语言下的值。如果为 null,则无数据返回;如果传入空字符串,则返回对于语言下的所有数据。 |
响应参数¶
名称 |
数据类型 |
描述 |
---|---|---|
data |
Asset 结构体数组 |
Asset 的列表。参见 Asset 结构体>> |
示例¶
请求示例¶
url: https://{apigw-address}/asset-tree-service/v2.1/asset-nodes?treeId=k6wweMTP&action=searchRelatedAsset&orgId=yourOrgId
method: POST
requestBody:
{
"filter": {
"isChildOfAssetId": "4R6PbfVj"
},
"action": "searchRelatedAsset",
"projection": ["attributes", "assetId", "name"]
}
返回示例¶
{
"code":0,
"msg":"OK",
"requestId":"153ad7a2-2ec1-41b0-b750-e4ea2ce2786c",
"data":[
{
"assetId":"8byS3cuc",
"name":{
"i18nValue":{
},
"defaultValue":"ycmdevice_1"
},
"attributes":{
}
},
{
"assetId":"Fq5M1Y6E",
"name":{
"i18nValue":{
},
"defaultValue":"ycmdevice_3"
},
"attributes":{
}
},
{
"assetId":"nPQUW0Nr",
"name":{
"i18nValue":{
"en_US":"Rebecca_testSiteAPI3"
},
"defaultValue":"Rebecca_testSiteAPI3"
},
"attributes":{
}
},
{
"assetId":"oLrrH1uz",
"name":{
"i18nValue":{
},
"defaultValue":"Rebecca_Service1"
},
"attributes":{
}
},
{
"assetId":"vuT6x3Xl",
"name":{
"i18nValue":{
},
"defaultValue":"ycmdevice_2"
},
"attributes":{
}
}
],
"pagination":{
"pageNo":1,
"pageSize":10,
"totalSize":10,
"sortedBy":null
}
}
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.AssetSearchVo;
import com.envisioniot.enos.asset_tree_service.vo.RelatedAssetSearchVo;
import org.junit.Test;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;
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 testSearchRelatedAssetNode() {
SearchRelatedAssetNodeRequest request = new SearchRelatedAssetNodeRequest();
request.setOrgId(OrgId);
request.setTreeId("yourTreeId");
RelatedAssetSearchVo filter = new RelatedAssetSearchVo();
filter.setIsChildOfAssetId("yourAssetId");
Projection onep = new Projection();
onep.addAll(Arrays.asList("attributes", "assetId", "name"));
request.setFilter(filter);
request.setProjection(onep);
request.setFilter(filter);
SearchRelatedAssetNodeResponse response =
Poseidon.config(PConfig.init().appKey(AccessKey).appSecret(SecretKey).debug()).url(ServerUrl)
.getResponse(request, SearchRelatedAssetNodeResponse.class);
}
}