更新时间:2023-04-13 GMT+08:00
分享

查询订阅列表

接口说明

应用服务器可调用此接口查询物联网平台中的订阅配置信息列表。

URI

请求方法

GET

URI

/v5/iot/{project_id}/subscriptions

传输协议

HTTPS

请求参数

名称

必选/可选

类型

位置

说明

X-Auth-Token

必选

String

Header

用户Token。通过调用IAM服务 获取IAM用户Token接口获取,接口返回的响应消息头中“X-Subject-Token”就是需要获取的用户Token。简要的获取方法样例请参见 Token认证

Instance-Id

可选

String

Header

实例ID。物理多租下各实例的唯一标识,一般华为云租户无需携带该参数,仅在物理多租场景下从管理面访问API时需要携带该参数。

project_id

必选

String

Path

项目ID。获取方法请参见 获取项目ID

resource

可选

String

Query

订阅的资源名称。

  • device:设备。
  • device.message:设备消息。
  • device.data:设备数据。
  • device.message.status:设备消息状态。
  • device.status:设备状态。
  • batchtask.status:批量任务状态。

event

可选

String

Query

订阅的资源事件,取值范围:activate、update。

event需要与resource关联使用,具体的“resource:event”映射关系如下:

  • device:activate(设备激活)
  • device.data:update(设备数据变化)
  • device.message.status:update(设备消息状态)
  • device.message:report(设备消息上报)
  • device.status:update (设备状态变化)
  • batchtask.status:update (批量任务状态变化)

callbackurl

可选

String

Query

订阅的回调地址,用于接收对应资源事件的通知消息,例如:https://host:port/callbackurltest。

app_id

可选

String

Query

资源空间ID。此参数为非必选参数,存在多资源空间的用户需要使用该接口时,可以携带该参数查询指定资源空间下的消息订阅列表,不携带该参数则会查询该用户下所有消息订阅列表。

channel

可选

String

Query

物联网平台推送通知消息时使用的协议通道。使用“http”填充,表示该订阅推送协议通道为http(s)协议。

limit

可选

Integer

Query

分页查询时每页显示的记录数。默认每页10条记录,最大设定每页50条记录,取值范围为1-50的整数。

marker

可选

String

Query

上一次分页查询结果中最后一条记录的ID,在上一次分页查询时由物联网平台返回获得。分页查询时物联网平台是按marker也就是记录ID降序查询的,越新的数据记录ID也会越大。若填写marker,则本次只查询记录ID小于marker的数据记录。若不填写,则从记录ID最大也就是最新的一条数据开始查询。如果需要依次查询所有数据,则每次查询时必须填写上一次查询响应中的marker值。

offset

可选

Integer

Query

表示从marker后偏移offset条记录开始查询。默认为0,取值范围为0-500的整数。当offset为0时,表示从marker后第一条记录开始输出。 - 限制offset最大值是出于API性能考虑,您可以搭配marker使用该参数实现翻页,例如每页50条记录,1-11页内都可以直接使用offset跳转到指定页,但到11页后,由于offset限制为500,您需要使用第11页返回的marker作为下次查询的marker,以实现翻页到12-22页。

响应参数

名称

类型

说明

subscriptions

List<SubscriptionItem>

订阅配置信息列表。

count

Integer

满足查询条件的记录总数。

marker

String

本次分页查询结果中最后一条记录的ID,可在下一次分页查询时使用。

表1 SubscriptionItem

名称

类型

说明

subscription_id

String

订阅ID,用于唯一标识一个订阅,在创建订阅时由物联网平台分配获得。

subject

Subject Object

订阅的主题信息,即订阅的资源变化事件。

callbackurl

String

订阅的回调地址,用于接收对应资源事件的通知消息。

channel

String

物联网平台推送通知消息时使用的协议通道。使用“http”填充,表示该订阅推送协议通道为http(s)协议。

表2 Subject

名称

类型

说明

resource

String

订阅的资源名称。

  • device:设备。
  • device.data:设备数据。
  • device.message.status:设备消息状态。
  • device.message:设备消息。
  • device.status:设备状态。
  • batchtask.status:批量任务状态。

event

String

订阅的资源事件,取值范围:activate、update、up。

event需要与resource关联使用,具体的“resource:event”映射关系如下:

  • device:activate(设备激活)
  • device.data:update(设备数据变化)
  • device.message.status:update(设备消息状态)
  • device.message:report(设备消息上报)
  • device.status:update (设备状态变化)
  • batchtask.status:update (批量任务状态变化)

请求示例

GET https://{Endpoint}/v5/iot/{project_id}/subscriptions?resource={resource}&event={event}&callbackurl={callbackurl}&app_id={app_id}&channel={channel}&limit={limit}&marker={marker}&offset={offset}
Content-Type: application/json
X-Auth-Token: ********
Instance-Id: ********

响应示例

Status Code: 200 OK

Content-Type: application/json

{
  "subscriptions" : [ {
    "subscription_id" : "5bcaddda-75bf-4623-8c8d-26175c41fcca",
    "subject" : {
      "resource" : "device",
      "event" : "activate"
    },
    "callbackurl" : "https://host:port/deviceActivate",
    "channel" : "http"
  } ],
  "count" : 10,
  "marker" : "5c90fa7d3c4e4405e8525079"
}

错误码

HTTP状态码

错误码

错误码英文描述

错误码中文描述

处理建议

400

IOTDA.000006

Invalid input data.

请求参数不合法

请排查请求参数是否符合华为云文档要求。

IOTDA.000011

Invalid input. The specified parameter 'pageNo' is out of range.

请求参数中pageNo超出范围

请排查请求参数中的pageNo大小是否在文档限制范围之内。

IOTDA.000012

Invalid input. The specified parameter 'pageSize' is out of range.

请求参数中pageSize超出范围

请排查请求参数中的pageSize大小是否在文档限制范围之内。

IOTDA.000013

Invalid input. The parameter 'pageSize' multiply 'pageNo' exceeds the upper limit.

查询范围查过最大限制。

请检查pageSize和pageNo参数的大小。

403

IOTDA.000021

Operation not allowed. User not found by IAM token or the authorized user has not subscribed IOTDA service.

没有找到IAM Token所对应的用户信息或该用户没有订阅设备接入服务(IOTDA)

请排查IAM Token所在用户是否订阅了设备接入服务(IOTDA)。

IOTDA.001000

The application does not exist.

该应用不存在

请确定是否已在平台注册应用并检查应用ID是否正确。

IOTDA.001002

Operation not allowed. The application has not been authorized.

该应用没有权限访问

请检查该应用是否已被授权。

IOTDA.001005

Operation not allowed. The parameter 'app_id' is not carried, and the authorized user has more than one applications. Include the parameter 'app_id', or contact Huawei technical support engineers to merge application data.

该用户下有多个应用的情况下未携带appId访问接口

请携带对应的appId或联系华为工程师合并应用数据。

IOTDA.001006

Operation not allowed. Application not found by authorized user or the authorized user has no application.

用户下没有应用或应用与用户不匹配

请排查用户下是否有应用或是否有指定的应用。

IOTDA.001007

Operation not allowed. The application does not belong to the authorized user.

应用与用户信息不匹配

请排查该用户下是否有指定的应用。

500

IOTDA.000001

Internal server error.

服务器内部错误

请联系华为工程师分析解决。

IOTDA.000020

Decrypt IAM token failed.

IAM Token解析失败

请联系华为工程师分析解决。

相关文档