Search Asset Node¶
查询满足条件的资产。
请求格式¶
POST https://{apigw-address}/asset-tree-service/v2.1/asset-nodes?action=searchAsset
请求参数(URI)¶
名称 |
位置(Path/Query) |
必需/可选 |
数据类型 |
描述 |
---|---|---|---|---|
orgId |
Query |
必需 |
String |
资产所属的组织 ID。如何获取 orgId 信息>> |
请求参数(Body)¶
备注
可使用 expression
或 filter
进行搜索,但不能同时使用。EnOS Cloud 仅支持 expression
进行搜索,EnOS Edge 则支持 expression
或 filter
.
名称 |
必需/可选 |
数据类型 |
描述 |
---|---|---|---|
expression |
可选 |
String |
查询表达式,目前支持的字段有
不能将其与 |
filter |
可选 |
AssetSearchVo 结构体 |
查询条件。不能将其与 注:EnOS Cloud 不支持该参数。 |
pagination |
可选 |
Pagination 请求结构体 |
随机分页。如未指定,默认每页100条。每页最大记录数为 1000 条,但为获得最佳性能,建议每页不超过 50 条。不支持使用 |
projection |
可选 |
Projection 结构体 |
用于在接口请求中描述待返回的对象 projection。参数如何对结果集做裁剪>> 注:EnOS Edge 不支持该参数。 |
AssetSearchVo 结构体 ¶
名称 |
必需/可选 |
数据类型 |
描述 |
---|---|---|---|
assetIds |
可选 |
String Array |
资产列表。 |
modelIds |
可选 |
String Array |
模型列表。 |
rootModelIds |
可选 |
String Array |
根模型列表。 |
attributes |
可选 |
Map (Key 为 String,Value 为 Object) |
资产所属的模型属性。 |
tags |
可选 |
Map (Key 和 Value 为 String) |
用户自定义标签。 |
nameLike |
可选 |
I18nSearchVo 结构体 |
资产名称,支持模糊搜索。其结构参见 I18nSearchVo 结构体。 |
I18nSearchVo 结构体 ¶
名称 |
必需/可选 |
数据类型 |
描述 |
---|---|---|---|
locale |
可选 |
String |
语言类型,只支持 default、zh_CN、en_US、ja_JP 和 es_ES。 |
value |
可选 |
String |
资产名称在所属语言下的值。如果为 null,则无数据返回;如果传入空字符串,则返回对应语言下的所有数据。 |
响应参数¶
名称 |
数据类型 |
描述 |
---|---|---|
data |
数组 |
资产列表。信息包括来自 Asset 结构体 的 |
错误码¶
代码 |
错误信息 |
描述 |
---|---|---|
99400 |
Invalid arguments |
请求参数非法,请检查请求参数。 |
99500 |
System error |
服务器内部错误,请联系EnOS。 |
示例¶
请求示例¶
url: https://{apigw-address}/asset-tree-service/v2.1/asset-nodes?action=searchAsset&orgId=yourOrgId
method: POST
requestBody:
{
"projection": ["attributes", "assetId", "name"]
}
返回示例¶
{
"code": 0,
"msg": "OK",
"requestId": "cf08e75c-325a-429f-bdb9-ec5d6a1250d7",
"pagination": {
"pageNo": 1,
"pageSize": 10,
"totalSize": 10,
"sortedBy": null
},
"data": [{
"assetId": "f1Y6KiOr",
"name": {
"i18nValue": {},
"defaultValue": "earth"
},
"attributes": {
"starsystem": "Solar System",
"de001": 123
}
}, {
"assetId": "WHIFQDEZ",
"name": {
"i18nValue": {},
"defaultValue": "earth"
},
"attributes": {
"starsystem": "Solar System",
"de001": 123
}
}, {
"assetId": "TdqGOisO",
"name": {
"i18nValue": {},
"defaultValue": "earth"
},
"attributes": {
"starsystem": "Solar System",
"de001": 123
}
}, {
"assetId": "T9VewFFA",
"name": {
"i18nValue": {},
"defaultValue": "venus"
},
"attributes": {
"starsystem": "Solar System",
"de001": 123
}
}, {
"assetId": "NU3EbpXK",
"name": {
"i18nValue": {},
"defaultValue": "1559140566137"
},
"attributes": {
"starsystem": "Solar System",
"de001": 123
}
}, {
"assetId": "9AE1XYBl",
"name": {
"i18nValue": {},
"defaultValue": "earth"
},
"attributes": {
"starsystem": "Solar System",
"de001": 123
}
}, {
"assetId": "ZPuCIbDw",
"name": {
"i18nValue": {},
"defaultValue": "earth"
},
"attributes": {
"starsystem": "Solar System",
"de001": 123
}
}]
}
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 testSearchAssetNode() {
SearchAssetNodeRequest request = new SearchAssetNodeRequest();
request.setOrgId(OrgId);
request.setExpression("name.default like'assetDefaultName'");
Projection projection = new Projection();
projection.addAll(Arrays.asList("attributes", "assetId", "name"));
request.setProjection(projection);
SearchAssetNodeResponse response = Poseidon.config(PConfig.init().appKey(AccessKey).appSecret(SecretKey).debug())
.url(ServerUrl).getResponse(request, SearchAssetNodeResponse.class);
}
}