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