Todos los productos
Search
Centro de documentos

IoT Platform:Ejemplos de uso del SDK para Node.js

Última actualización: Sep 03, 2026

Utilice el SDK de Node.js de Alibaba Cloud para invocar operaciones de API en DataService Studio y recuperar datos específicos de forma sencilla. Este tema ilustra cómo usar el SDK de Node.js para llamar a la API de métricas predefinidas; se incluye tanto el método como un ejemplo práctico.

Requisitos previos

  • Para llamar a la API de métricas predefinidas, asegúrese de que el producto y el dispositivo estén creados, y de que la copia de seguridad de los datos se haya completado. Para obtener instrucciones detalladas, consulte API for preset metrics.

  • Para invocar la API de datos del producto o personalizar una API de servicio, confirme que la API correspondiente esté establecida. Para obtener instrucciones detalladas, consulte Product data API y Customize service API.

Para más información, consulte the referenced document.

Instalar el SDK

  1. Para configurar el entorno de desarrollo de Node.js, visite el sitio web oficial de Node.js y siga las instrucciones de instalación proporcionadas.

  2. Para instalar el SDK de OpenAPI de Alibaba Cloud, ejecute los siguientes comandos.

    npm install @alicloud/openapi-client
    npm install @alicloud/iot20180120

Iniciar una solicitud

A continuación se muestra un ejemplo de cómo llamar a las estadísticas históricas de recuento de dispositivos desde la API de métricas predefinidas en DataService Studio. Modifique el código según sea necesario, basándose en las descripciones de los parámetros, para llamar a la API deseada.

Importante

Tenga en cuenta que el número máximo de solicitudes por segundo (QPS) para una sola cuenta de Alibaba Cloud al llamar a la API de DataService Studio es 100.

const Config = require('@alicloud/openapi-client').Config;
const ListAnalyticsDataRequest = require('@alicloud/iot20180120').ListAnalyticsDataRequest;
const IotClient = require('@alicloud/iot20180120');
const ListAnalyticsDataRequestCondition = require('@alicloud/iot20180120/dist/client').ListAnalyticsDataRequestCondition;
// Create a client
const config = new Config();
config.endpoint = "iot.cn-shanghai.aliyuncs.com";
config.accessKeyId = "LTAI****************";
config.accessKeySecret = "yourAccessKeySecret";
config.regionId = "cn-shanghai";
async function main() {
    const client = new IotClient.default(config);
    // Create a request object
    const listAnalyticsDataRequest = new ListAnalyticsDataRequest();
    // Your API Path
    listAnalyticsDataRequest.apiPath = '/iot-cn-npk1v******/system/query/hist_dev_cnt_stat'
    // Paging parameter: page number
    listAnalyticsDataRequest.pageNum = 1;
    // Paging parameter: page size
    listAnalyticsDataRequest.pageSize = 100;
    // The instance ID where your API is located
    listAnalyticsDataRequest.iotInstanceId = 'iot-cn-npk1v******' 
    // Your API business-related request parameters. For the configuration description of Condition, see the relevant description below.
    const conditions = [];
    const condition = new ListAnalyticsDataRequestCondition();
    condition.operate = '=';
    condition.fieldName = '__instance_id__';
    condition.value = 'iot-public'
    conditions.push(condition)
    const condition1 = new ListAnalyticsDataRequestCondition();
    condition1.operate = '=';
    condition1.fieldName = 'entityId';
    condition1.value = 'all'
    conditions.push(condition1)
    const condition2 = new ListAnalyticsDataRequestCondition();
    condition2.operate = '=';
    condition2.fieldName = 'statDate';
    condition2.value = '20210221'
    conditions.push(condition2)
    listAnalyticsDataRequest.condition = conditions;
    try {
        const response = await client.listAnalyticsData(listAnalyticsDataRequest)
        console.log(response)
    } catch (ex) {
        console.log(ex);
    }
}
main();
  • Parámetros de solicitud del sistema:

    Nombre

    Tipo

    Obligatorio

    Valor de ejemplo

    Descripción

    endpoint

    String

    Sí

    iot.cn-shanghai.aliyuncs.com

    El endpoint del servidor de API del servicio de Alibaba Cloud. Asegúrese de que la región coincida con la región del producto de IoT Platform.

    En este ejemplo, la región es East China 2 (cn-shanghai).

    accessKeyId

    String

    Sí

    LTAI**

    Vaya a la consola de IoT Platform, pase el cursor sobre la imagen de perfil de la cuenta y haga clic en AccessKey Management para obtener el AccessKey ID y el AccessKey Secret.

    Nota

    Los usuarios de Resource Access Management (RAM) deben tener adjunta la política AliyunIOTFullAccess para gestionar recursos de IoT Platform. De lo contrario, la conexión fallará. Para obtener detalles sobre la autorización, consulte Grant RAM user access to IoT Platform.

    accessKeySecret

    String

    Sí

    **

    regionId

    String

    Sí

    cn-shanghai

    El código de la región. Para consultar la lista de regiones compatibles, vea Supported regions.

    apiPath

    String

    Sí

    iot-cn-npk1u

    La ruta de la operación de API. Consulte la lista de API en DataService Studio y haga clic en View para acceder a la página del producto de la API y obtener el valor de API Patch. Para más detalles, consulte the referenced document.

    pageNum

    Integer

    Obligatorio cuando la paginación está habilitada

    1

    El número de página para la paginación.

    pageSize

    Integer

    Obligatorio cuando la paginación está habilitada

    100

    El número de entradas por página, hasta un máximo de 100.

    iotInstanceId

    String

    Sí

    iot-cn-npk1v

    El ID de la instancia donde se despliega su API.

  • Parámetros de solicitud relacionados con el negocio:

    Nombre

    Tipo

    Obligatorio

    Descripción

    Código relacionado

    fieldName

    String

    Sí

    El nombre del campo para el parámetro de solicitud.

     condition.fieldName = '__instance_id__';

    operate

    String

    Sí

    El operador utilizado para el parámetro de solicitud. Las opciones incluyen:

    • = para coincidencias exactas.

    • BETWEEN para rangos.

    • IN para varios valores.

    • != para exclusiones.

     condition.operate = '=';

    value

    String

    No

    El valor específico para el parámetro de solicitud.

    Importante

    Este parámetro es obligatorio a menos que el operador sea BETWEEN.

     condition.value = 'iot-public';

    betweenStart

    String

    No

    El valor inicial para un parámetro de rango.

    Importante

    Obligatorio cuando el operador es BETWEEN.

     condition.betweenStart = '0';

    betweenEnd

    String

    No

    El valor final para un parámetro de rango.

    Importante

    Obligatorio cuando el operador es BETWEEN.

     condition.betweenEnd = '1000';

    Cada parámetro de solicitud está asociado con una condition. Puede establecer un número específico de conditions en la página del producto de la API. Para obtener detalles sobre cómo ver los parámetros de solicitud de la API, consulte Manage API.

    En el código de ejemplo proporcionado, la API tiene tres parámetros de solicitud: __instance_id__, entityId y statDate, que corresponden a condition, condition1 y condition2, respectivamente.

Resultado de la ejecución

  • Éxito:

    Las descripciones detalladas de los parámetros devueltos se encuentran en la página del producto de la API correspondiente. Para operaciones específicas, consulte the referenced document.

    El siguiente ejemplo demuestra una llamada exitosa a la API, que devuelve estadísticas de recuento de dispositivos para la instancia pública desde el 21 de febrero de 2021 hasta el momento de la llamada.

    ListAnalyticsDataResponse {
      headers: {
        date: 'Mon, 15 Mar 2021 10:40:58 GMT',
        'content-type': 'application/json;charset=utf-8',
        'content-length': '425',
        connection: 'keep-alive',
        'access-control-allow-origin': '*',
        'access-control-allow-methods': 'POST, GET, OPTIONS',
        'access-control-allow-headers': 'X-Requested-With, X-Sequence, _aop_secret, _aop_signature',
        'access-control-max-age': '172800',
        'x-acs-request-id': 'F278FA13-11E6-42BC-9883-3566AC******'
      },
      body: ListAnalyticsDataResponseBody {
        requestId: 'F278FA13-11E6-42BC-9883-3566AC******',
        success: true,
        data: ListAnalyticsDataResponseBodyData {
          hasNext: false,
          resultJson: '[{"statDate":"20210221","actDevCnt":2942,"onlineDevCntCompare":0.00,"livelyDevCntCompare":8.99,"livelyDevCnt":1527,"onlineDevRate":23.08,"crtDevCnt":169025,"livelyDevRate":51.90,"crtDevCntCompare":0.08,"onlineDevCnt":679,"actDevRate":1.74,"actDevCntCompare":4.55}]',
          pageNum: 1,
          pageSize: 100
        }
      }
    }
  • Con errores:

    Puede determinar la razón de una llamada con errores al examinar el código de error en el resultado.

    El siguiente ejemplo muestra una llamada a la API con errores debido a un parámetro de solicitud no válido: __instance_idd__. Corríjalo a __instance_id__ e intente realizar la llamada nuevamente.