Search Asset Node

查询满足条件的资产。

操作权限

需授权的资源

所需操作权限

资产树管理

Read

请求格式

POST https://{apigw-address}/asset-tree-service/v2.1/asset-nodes?action=searchAsset

请求参数(URI)

名称

位置(Path/Query)

必需/可选

数据类型

描述

orgId

Query

必需

String

资产所属的组织ID。如何获取orgId信息>>

请求参数(Body)

名称

必需/可选

数据类型

描述

expression

可选

String

查询表达式,目前支持的字段有 assetIdsmodelIdsrootModelIdsnameattributestagstreeIdcreateTimeproductKeydeviceKey

  • assetIdsmodelIdsrootModelIds :支持in、算术运算符 = 。

  • productKeydeviceKey :支持like模糊查询,支持=运算符。

  • createTime :支持=、<=、>= 运算符。筛选的是Asset的创建时间

  • tags.* :支持like模糊查询,支持exists查询。

  • name:支持指定语言模糊查询:

    • name like 'xxx':模糊查询default、中文和英文名称。

    • name.default like 'xxx':模糊查询默认名称。

    • name.zh_CN like 'xxx':模糊查询中文名称,不存在中文名称时模糊查询default名称。

    • name.en_US like 'xxx':模糊查询英文名称,不存在英文名称时模糊查询default名称。

如何使用查询表达式>>

pagination

可选

pagination请求结构体

随机分页。每页最大记录数为1000条。如未指定,默认分页大小是100。不支持使用 sorters 结构体对结果进行排序。详见 Pagination请求结构体>>

projection

可选

Projection结构体

用于在接口请求中描述待返回的对象projection。详见 参数如何对结果集做裁剪>>

响应参数

名称

数据类型

描述

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);
    }
}