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