Associate Asset¶
将指定已有资产节点关联到资产树上。待关联的资产可以是一个设备资产,也可以是一个逻辑资产。如果待关联的资产节点是一个设备资产,可使用设备资产的Product Key、 Device Key来描述,如果待关联的资产节点是一个逻辑资产,可使用逻辑资产的ID来描述。
操作权限¶
需授权的资源 |
所需操作权限 |
---|---|
资产树管理 |
Full Access |
请求格式¶
POST https://{apigw-address}/asset-tree-service/v2.1/asset-nodes?action=associateAsset
请求参数(URI)¶
备注
以下非必须字段中,必须提供 assetId
或 productKey
+ deviceKey
的组合,用于指定设备。
名称 |
位置(Path/Query) |
必需/可选 |
数据类型 |
描述 |
---|---|---|---|---|
orgId |
Query |
必需 |
String |
资产所属的组织ID。如何获取orgId信息>> |
treeId |
Query |
必需 |
String |
需要获取的资产树ID。如何获取资产树信息ID>> |
parentAssetId |
Query |
必需 |
String |
待关联资产的父资产ID。 |
assetId |
Query |
可选 |
String |
|
productKey |
Query |
可选 |
String |
待关联设备的Product Key。 |
deviceKey |
Query |
可选 |
String |
待关联设备的Device Key。 |
响应参数¶
名称 |
数据类型 |
描述 |
---|---|---|
data |
String |
关联成功的资产ID。 |
错误码¶
名称 |
错误信息 |
描述 |
---|---|---|
17404 |
TreeId is not exist |
Tree ID 不存在。 |
17752 |
Parent assetId is not existed in the tree |
父资产不存在该树上。 |
17758 |
AssetId is existed in the tree |
Asset ID已存在。 |
17762 |
The tree is locked |
一次只允许一个用户修改资产树,暂时不能操作该资产树,请再次请求。 |
17770 |
Exceeding the layer limit(7) |
该树超过最高层数限制(7层)。 |
99400 |
Invalid arguments |
请求参数非法,请检查请求参数。 |
99500 |
System error |
服务器内部错误,请联系EnOS。 |
示例¶
请求示例¶
url: https://{apigw-address}/asset-tree-service/v2.1/asset-nodes?action=associateAsset&orgId=yourOrgId&treeId=yourTreeId&parentAssetId=yourParentAssetId&productKey=yourProductKey&deviceKey=yourDeviceKey
method: POST
返回示例¶
{
"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.asset_tree_service.v2_1.AssociateAssetNodeRequest;
import com.envisioniot.enos.asset_tree_service.v2_1.AssociateAssetNodeResponse;
import org.junit.Test;
public class AssociateAssetNodeTest {
private static String AccessKey = "yourAccessKey";
private static String SecretKey = "yourSecretKey";
private static String OrgId = "yourOrgId";
private static String ServerUrl = "yourServerUrl";
@Test
public void testAssociateAssetNode() {
AssociateAssetNodeRequest request = new AssociateAssetNodeRequest();
request.setOrgId(OrgId);
request.setTreeId("yourTreeId");
request.setParentAssetId("yourParentAssetId");
request.setAssetId("yourAssetId");
AssociateAssetNodeResponse response = Poseidon.config(PConfig.init().appKey(AccessKey).appSecret(SecretKey).debug())
.url(ServerUrl)
.getResponse(request, AssociateAssetNodeResponse.class);
}
}