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

查询表达式,支持字段 tags,支持算数运算符 = 和 exists。 如何使用查询表达式>>

pagination

可选

Pagination 请求结构体

用于在接口请求中描述分页要求。每页最大记录数为 1000 条。默认第一页,分页大小 100。不支持使用 sorters 结构体对结果进行排序。Pagination 请求结构体>>

projection

可选

Projection 结构体

详见 projection 参数如何对结果集做裁剪>>

响应参数

名称

数据类型

描述

data

AssetTree 结构体数组

基于 assetId 的资产树信息。有关 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":"BtsYmF2r",
                    "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);
    }
}