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

仅当 biDirectionalAuthtrue 时适用。此参数在该产品下的设备/网关申请证书时使用。当设备/网关申请证书但未指定有效期时,此参数将作为证书有效期。范围为 1 到 3650,默认值为 730。

maxValidDay

可选

Integer

仅当 biDirectionalAuthtrue 时适用。当该产品下的设备/网关申请证书时,作为设备/网关的最大证书有效期。若超出有效期则报错,申请证书失败。范围为 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);
  }
}