Create Asset Tree and Associate Asset


创建一个资产树,并关联一个已有的资产(设备资产或逻辑资产)作为其根节点。

操作权限

需授权的资源

所需操作权限

资产树管理

Full Access

请求格式

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

请求参数(URI)

备注

以下非必须字段中,必须提供 assetIdproductKey + deviceKey 的组合,用于指定设备。

名称

位置(Path/Query)

必需/可选

数据类型

描述

orgId

Query

必需

String

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

assetId

Query

可选

String

待关联的资产 ID。 + 如指定 assetId,则关联由 assetId 唯一识别的资产。如何获取 Asset ID 信息>> + 如未指定 assetId,则关联以 productKeydeviceKey 组合唯一识别的资产。

productKey

Query

可选

String

待关联设备的 Product Key。

deviceKey

Query

可选

String

待关联设备的 Device Key。

请求参数(Body)

名称

必需/可选

数据类型

描述

tree

可选

TreeCreateVo 结构体

创建资产树所需要的详情。见 TreeCreateVo 结构体>>

响应参数

名称

数据类型

描述

data

String

创建成功的资产树 ID。

错误码

名称

错误信息

描述

17772

The quota of tree reaches ceiling

资产树数量达到 OU 上限。

99400

Invalid arguments

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

99500

System error

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

示例

请求示例

url: https://{apigw-address}/asset-tree-service/v2.1/asset-trees?action=associate&orgId=yourOrgId&assetId=yourAssetId
method: POST
requestBody:
{
    "tree":{
        "name":{
            "defaultValue":"Name"
        }
    }
}

返回示例

{
    "code": 0,
    "msg": "OK",
    "requestId": "01b5477a-374e-49a0-8b68-7dbfe8f0b74f",
    "data": "cRUdS7sJ"
}

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.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.*;
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 testAssociateTree() {
        AssociateTreeRequest request = new AssociateTreeRequest();
        TreeCreateVo tree = new TreeCreateVo();
        I18nVo treeName = new I18nVo();
        treeName.setDefaultValue("treeDefaultName");
        tree.setName(treeName);
        request.setTree(tree);
        request.setOrgId(OrgId);
        request.setAssetId("yourAssetId");
        AssociateTreeResponse response = Poseidon.config(PConfig.init().appKey(AccessKey).appSecret(SecretKey).debug())
            .url(ServerUrl)
            .getResponse(request, AssociateTreeResponse.class);
    }
}