Get Asset Trees


根据一组 assetId 搜索资产所在的资产树。若 assetId 不在树上,则 data 中无该 key。

请求格式

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

请求参数(URI)

名称

位置(Path/Query)

必需/可选

数据类型

描述

orgId

Query

必需

String

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

请求参数(Body)

名称

必需/可选

数据类型

描述

assetIds

必需

String 数组

一组资产 ID,最多 100 个。如何获取 Asset ID 信息>>

projection

可选

Projection 结构体

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

注:EnOS Edge 不支持该参数。

响应参数

名称

数据类型

描述

data

Map(Key 为 assetId,Valu 为 AssetTree 结构体 Array)

资产和其所在的资产树列表。AssetTree 结构体>>

AssetTree 结构体

名称

数据类型

描述

treeId

String

资产树ID。

tags

Map(Key 为 String, Value 为 String)

用户自定义的一组资产树标签。标签的作用与表示方法>>

asset

Asset 结构体

资产树上的根资产。

错误码

代码

错误信息

描述

99400

Invalid arguments

请求参数非法,请检查请求参数。

99500

System error

服务器内部错误,请联系 EnOS。

示例

请求示例

url: https://{apigw-address}/asset-tree-service/v2.1/asset-nodes?action=getAssetTree&orgId=yourOrgId
method: POST
requestBody:
{
 "assetIds": ["yourAssetId1", "yourAssetId2"]
}

返回示例

{
 "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 调用示例

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.RelatedAssetSearchVo;
import org.junit.Test;
import java.util.Arrays;

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 testSearchTreeByAssetId() throws Exception {
        SearchAssetTreeByAssetIdsRequest request = new SearchAssetTreeByAssetIdsRequest();
        request.setOrgId(OrgId);
        request.setAssetIds(Arrays.asList("assetId1", "assetId2"));
        SearchAssetTreeByAssetIdsResponse response =
            Poseidon.config(PConfig.init().appKey(AccessKey).appSecret(SecretKey).debug()).url(ServerUrl)
            .getResponse(request, SearchAssetTreeByAssetIdsResponse.class);
        System.out.println(response.getData());
    }
}