V2.4 Search Product


搜索满足条件的产品。


使用此 API 前,确保已安装 EnOS 2.4 CU1 或更新版本。

如果你在使用 API 批量更新相关产品信息后调用当前 API,建议两次调用间隔 2 秒左右,以免获取到未更新数据。

请求格式

POST https://{apigw-address}/connect-service/v2.4/products?action=search

请求参数(URI)

名称 位置(Path/Query) 必需/可选 数据类型 描述
orgId Query 必需 String 资产所属的组织 ID。 如何获取 orgId 信息>>

请求参数(Body)

名称 必需/可选 数据类型 描述
expression 可选 String

查询表达式,支持类 SQL 的查询。目前支持查询的字段是 productKeymodelIdproductTagsproductName。字段之间支持逻辑运算符 and、or。

  • productKey:支持算术运算符 =、in。
  • modelId:支持算术运算符 =、in。
  • productTags:支持算术运算符 =、exists、not exists。
  • productName:支持指定语言模糊查询:
    • productName like 'xxx':模糊查询 default、中文和英文名称。
    • productName.default like 'xxx':模糊查询默认名称。
    • productName.zh_CN like 'xxx':模糊查询中文名称,不存在中文名称时模糊查询 default 名称。
    • productName.en_US like 'xxx':模糊查询英文名称,不存在英文名称时模糊查询 default 名称。

如何使用查询表达式>>

requireSecret 可选 Boolean
  • true:返回 deviceSecretsessionKey。需确保:
    • 服务账号已被授予对应的 操作权限。若无权限,deviceSecretsessionKey 返回的值将提示错误。
    • 已为服务帐号创建 RSA 密钥对。创建 RSA 密钥对 >>
  • false (默认):不返回 deviceSecretsessionKey
pagination 可选 String 分页参数。如未指定,默认每页 10 条。每页最大记录数为 1,000 条,但为获得最佳性能,建议每页不超过 50 条。不支持使用 sorters 参数对结果进行排序,查询结果按照 createTime,最近创建的靠前排列。Pagination 请求结构体>>

响应参数

名称 数据类型 描述
data Product 结构体数组 查询得到的产品列表,按照创建时间由新至旧排列。见 Product 结构体>>

错误码

代码 错误信息 描述
99400 Invalid arguments 参数错误。
11858 Unable to find public key 由于应用的服务帐号未创建 RSA 密钥对,无法获取 RSA 公钥,因此无法请求 requireSecret。请先为服务帐号 创建 RSA 密钥对

示例

请求示例


url: https://{apigw-address}/connect-service/v2.4/products?action=search&orgId=yourOrgId
method: POST
requestBody:
{
        "expression":"modelId=\"AlterTest0615\"",
        "pagination":{
                "pageNo":1,
                "pageSize":5
        },
  "requireSecret": true
}

返回示例


{
        "code":0,
        "msg":"OK",
        "requestId":"a82752bb-9eb0-4cd5-b0c6-0c1aeb35f6d2",
        "data":[
                {
                        "orgId":"yourOrgId",
                        "productKey":"yourProductKey",
                        "productName":{
                                "defaultValue":"openapi_sdk_8",
                                "i18nValue":{}
                        },
                        "productSecret"::"EncryptedProductSecret1",
            "sessionKey":"EncryptedSessionKey1",
                        "productDesc":"test_sdk_update",
                        "productType":"Device",
                        "dataFormat":"Custom",
                        "productTags":{},
      "protocolGatewayIds":{},
                        "modelId":"AlterTest0615",
                        "dynamicActiveEnabled":false,
                        "biDirectionalAuth":true,
      "createBy": null,
      "createTime": null,
      "updateBy": null,
      "updateTime": 1589767858113
                },
                {
                        "orgId":"yourOrgId",
                        "productKey":"yourProductKey",
                        "productName":{
                                "defaultValue":"AlterTest0615_Product",
                                "i18nValue":{}
                        },
                        "productSecret":"EncryptedProductSecret2",
            "sessionKey":"EncryptedSessionKey2",
                        "productDesc":"",
                        "productType":"Device",
                        "dataFormat":"Json",
                        "productTags":{},
      "protocolGatewayIds":{},
                        "modelId":"AlterTest0615",
                        "dynamicActiveEnabled":false,
                        "biDirectionalAuth":false,
      "createBy": null,
      "createTime": null,
      "updateBy": null,
      "updateTime": 1589767858113,
      "defaultValidDay":null,
      "maxValidDay":null
                }
        ],
        "pagination":{
                "sortedBy":null,
                "pageNo":1,
                "pageSize":5,
                "totalSize":2
        }
}

SDK 示例


你可以在 Github 上获取接入服务的 SDK 示例: