Create Product¶
创建产品。
操作权限¶
需授权的资源 | 所需操作权限 |
---|---|
设备管理 | Full Access |
请求格式¶
POST https://{apigw-address}/connect-service/v2.1/products?action=create
请求参数(URI)¶
名称 | 位置(Path/Query) | 必需/可选 | 数据类型 | 描述 |
---|---|---|---|---|
orgId | Query | 必需 | String | 资产所属的组织 ID。如何获取 orgId 信息>> |
请求参数(Body)¶
名称 | 必需/可选 | 数据类型 | 描述 |
---|---|---|---|
modelId | 必需 | String | 资产所属模型 ID。如何获取 modelId 信息>> |
productName | 必需 | StringI18n | 产品名称,见 国际化名称结构体。 |
productType | 必需 | String | 产品类型。Device 代表普通产品类型, Gateway 代表网关类型。 |
biDirectionalAuth | 必需 | Boolean | 是否支持双向认证。 |
dataFormat | 必需 | String | 数据类型。Custom 代表用户自定义数据类型, Json 代表 JSON 数据类型。 |
productDesc | 可选 | String | 产品的描述。 |
dynamicActivateEnabled | 可选 | Boolean | 是否允许动态激活。 |
productTags | 可选 | Map | 产品标签。 |
defaultValidDay | 可选 | Integer | 仅当 biDirectionalAuth 为 true 时适用。此参数在该产品下的设备/网关申请证书时使用。当设备/网关申请证书但未指定有效期时,此参数将作为证书有效期。范围为 1 到 3650,默认值为 730。 |
maxValidDay | 可选 | Integer | 仅当 biDirectionalAuth 为 true 时适用。当该产品下的设备/网关申请证书时,作为设备/网关的最大证书有效期。若超出有效期则报错,申请证书失败。范围为 1 到 3650,默认值为 1095。 |
响应参数¶
名称 | 数据类型 | 描述 |
---|---|---|
data | String | 创建的产品的 product key。 |
错误码¶
代码 | 错误信息 | 描述 |
---|---|---|
99500 | Query model failed | modelId 不存在。 |
示例¶
请求示例¶
url: https://{apigw-address}/connect-service/v2.1/products?action=create&orgId=yourOrgId
method: POST
requestBody:
{
"modelId":"yourModelId",
"productName":{
"defaultValue":"Product Name",
"i18nValue":{
"zh_CN": "产品名称",
"en_US": "Product Name"
}
},
"productType":"Device",
"biDirectionalAuth":false,
"dataFormat":"Custom",
"productDesc":"Product description",
"productTags":{
"tag1":"tag value"
}
}
返回示例¶
{
"code":0,
"msg":"OK",
"requestId":"522d0269-445d-4f13-be04-1424e0e2893e",
"data":"2zp6A70r"
}
Java SDK 调用示例¶
package com.envisioniot.enos.api.sample.connect_service.product;
import com.envision.apim.poseidon.config.PConfig;
import com.envision.apim.poseidon.core.Poseidon;
import com.envisioniot.enos.api.common.constant.common.StringI18n;
import com.envisioniot.enos.connect_service.v2_1.product.CreateProductRequest;
import com.envisioniot.enos.connect_service.v2_1.product.CreateProductResponse;
public class CreateProduct {
public static void main(String[] args) {
String appKey = "yourAppKey";
String appSecret = "yourAppSecret";
String serverUrl = "yourSeverUrl";
String orgId = "yourOrgId";
CreateProductRequest request = new CreateProductRequest();
request.setOrgId(orgId);
StringI18n productName = new StringI18n("yourProductName");
request.setProductName(productName);
request.setProductDesc("yourProductDesc");
request.setBiDirectionalAuth(false);
request.setDataFormat("Custom");
request.setProductType("Device");
request.setModelId("yourModelId");
Map<String, String> tags = Maps.newHashMap();
tags.put("tag1", "tag value");
request.setProductTags(tags);
CreateProductResponse response = Poseidon.config(PConfig.init().appKey(appKey).appSecret(appSecret).debug())
.url(serverUrl)
.getResponse(request, CreateProductResponse.class);
}
}