Updated on 2022-02-24 GMT+08:00

Querying Subscription in Batches

Typical Scenario

An NA can subscribe to different types of device change notifications on the IoT platform. The NA can call this API to query all subscription configurations of the current application or of a specified subscription type.

API Function

This API is used to query all subscription information of the current application or of a specified subscription type.

API Prototype

Method

GET

URL

https://server:port/iocm/app/sub/v1.2.0/subscriptions?appId={appId}&notifyType={notifyType}&pageNo={pageNo}&pageSize={pageSize}

Transport Protocol

HTTPS

Request Parameters

Parameter

Mandatory or Optional

Type

Location

Description

app_key

Mandatory

String

header

Identifies an application that can be accessed on the IoT platform. The value of this parameter is allocated by the IoT platform when the application is created on the platform.

Authorization

Mandatory

String

header

Indicates the authentication information for accessing the IoT platform. The value is Bearer {accessToken}, in which {accessToken} indicates the access token returned by the Authentication API.

appId

Optional

String(256)

query

Identifies an application that can be accessed on the IoT platform. The value of this parameter is allocated by the IoT platform when the application is created on the platform. Set this parameter to the value of appId of the authorized application.

notifyType

Optional

String(256)

query

Indicates the notification type based on which an NA can process messages.

  • deviceAdded: device addition; sending such a notification after subscription
  • bindDevice: device binding; sending such a notification after subscription
  • deviceInfoChanged: device information change; sending such a notification after subscription
  • deviceDataChanged: device data change; sending such a notification after subscription
  • deviceDatasChanged: batch device data change; sending such a notification after subscription
  • deviceCapabilitiesChanged: device service capability change; sending such a notification after subscription
  • deviceCapabilitiesAdded: device service capability added; sending such a notification after subscription
  • deviceCapabilitiesDeleted: device service capability deleted; sending such a notification after subscription
  • deviceDeleted: device deletion; sending such a notification after subscription
  • messageConfirm: message confirmation; sending such a notification after subscription
  • commandRsp: command response; sending such a notification after subscription
  • ruleEvent: rule event; sending such a notification after subscription
  • deviceDesiredPropertiesModifyStatusChanged: device shadow modification status change; sending such a notification after subscription
  • swUpgradeStateChangeNotify: software upgrade status change notification
  • swUpgradeResultNotify: software upgrade result notification
  • fwUpgradeStateChangeNotify: firmware upgrade status change notification
  • fwUpgradeResultNotify: firmware upgrade result notification

pageNo

Optional

Integer

query

Indicates the page number.

  • If the value is null, pagination query is not performed.
  • If the value is an integer greater than or equal to 0, pagination query is performed.
  • If the value is 0, the first page is queried.

pageSize

Optional

Integer

query

Indicates the page size. The value is an integer greater than or equal to 1. The default value is 10.

Response Parameters

Status Code: 200 OK

Parameter

Type

Description

totalCount

Long(>=0)

Indicates the total number of records.

pageNo

Long(>=0)

Indicates the page number.

pageSize

Long(>=0)

Indicates the number of records on each page.

subscriptions

List<QuerySubscriptionDTOCloud2NA>

Indicates the subscription information list.

QuerySubscriptionDTOCloud2NA structure

Parameter

Type

Description

subscriptionId

String

Uniquely identifies a subscription. The value of this parameter is allocated by the IoT platform during subscription creation.

notifyType

String

Indicates the notification type.

callbackUrl

String

Indicates the callback URL of the subscription.

Request Example

Method: GET
request:https://server:port/iocm/app/sub/v1.2.0/subscriptions?appId={appId}&notifyType={notifyType}&pageNo={pageNo}&pageSize={pageSize}
Header:
app_key: ******
Authorization: Bearer *****
Content-Type: application/json

Response Example

Response:
Status Code: 200 OK
Content-Type: application/json
Body:
{
  "pageNo": 0,
  "pageSize": 100,
  "totalCount": 10,
  "subscriptions": [
    {
      "subscriptionId": "*******",
      "notifyType": "*******",
      "callbackUrl": "*******"
    }
  ]
}

Error Codes

HTTP Status Code

Error Code

Error Description

Remarks

400

100224

The resource exceeds 1000, please refinement query conditions.

The number of resources exceeds 1000.

Recommended handling: Narrow down the filter criteria.

403

100217

The application hasn't been authorized.

The application has not been authorized.

Recommended handling: In scenarios where applications are not authorized, ensure that request parameter appId is null.

403

1010009

app throttle exceed.

The NA calls the API at a frequency that exceeds the flow control threshold (100 calls per minute by default).

Recommended handling: Contact IoT platform maintenance personnel to adjust the flow control threshold or control the API call frequency.

403

1010005

App_key or access_token is invalid.

The access token is invalid.

Recommended handling: Check whether accessToken carried in the API request is correct.