Tous les produits
Search
Centre de documentation

IoT Platform:Exemples d'utilisation du SDK pour Node.js

Dernière mise à jour :Aug 10, 2026

Exploitez le SDK Node.js d'Alibaba Cloud pour invoquer facilement les opérations d'API dans DataService Studio et récupérer des données spécifiques. Cette rubrique illustre l'utilisation du SDK Node.js pour appeler l'API des métriques prédéfinies, en présentant la méthode et un exemple concret.

Prérequis

  • Pour appeler l'API des métriques prédéfinies, assurez-vous que le produit et le dispositif sont créés et que la sauvegarde des données est terminée. Pour obtenir des instructions détaillées, consultez la rubrique API pour les métriques prédéfinies.

  • Pour invoquer l'API de données produit ou personnaliser une API de service, vérifiez que l'API correspondante est établie. Pour plus de détails, reportez-vous aux rubriques Product data API et Customize service API.

Pour en savoir plus, consultez la documentation de référence.

Installation du SDK

  1. Pour configurer l'environnement de développement Node.js, visitez le site officiel de Node.js et suivez les instructions d'installation fournies.

  2. Pour installer le SDK OpenAPI d'Alibaba Cloud, exécutez les commandes ci-dessous.

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

Envoi d'une requête

L'exemple suivant montre comment appeler les statistiques historiques du nombre de dispositifs à partir de l'API des métriques prédéfinies dans DataService Studio. Adaptez le code selon les descriptions des paramètres pour appeler l'API souhaitée.

Important

Notez que le nombre maximal de requêtes par seconde (QPS) pour un seul compte Alibaba Cloud lors de l'appel à l'API DataService Studio est de 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();
  • Paramètres de requête système :

    Nom

    Type

    Obligatoire

    Valeur d'exemple

    Description

    endpoint

    String

    Oui

    iot.cn-shanghai.aliyuncs.com

    Le endpoint du serveur d'API de service Alibaba Cloud. Assurez-vous que la région correspond à celle du produit IoT Platform.

    Dans cet exemple, la région est Chine de l'Est 2 (cn-shanghai).

    accessKeyId

    String

    Oui

    LTAI**

    Accédez à la console IoT Platform, placez le curseur sur l'image de profil du compte et cliquez sur AccessKey Management pour récupérer l'AccessKey ID et l'AccessKey Secret.

    Remarque

    Les utilisateurs Resource Access Management (RAM) doivent disposer de la stratégie AliyunIOTFullAccess attachée pour gérer les ressources IoT Platform. À défaut, la connexion échouera. Pour plus de détails sur l'autorisation, consultez Grant RAM user access to IoT Platform.

    accessKeySecret

    String

    Oui

    **

    regionId

    String

    Oui

    cn-shanghai

    Le code de la région. Pour la liste des régions prises en charge, consultez Supported regions.

    apiPath

    String

    Oui

    iot-cn-npk1u

    Le chemin de l'opération d'API. Consultez la liste des API dans DataService Studio et cliquez sur View pour accéder à la page produit de l'API afin d'obtenir la valeur API Patch. Pour plus de détails, voir la documentation de référence.

    pageNum

    Integer

    Requis lorsque la pagination est activée

    1

    Le numéro de page pour la pagination.

    pageSize

    Integer

    Requis lorsque la pagination est activée

    100

    Le nombre d'entrées par page, avec un maximum de 100.

    iotInstanceId

    String

    Oui

    iot-cn-npk1v

    L'ID de l'instance où votre API est déployée.

  • Paramètres de requête liés au métier :

    Nom

    Type

    Obligatoire

    Description

    Code associé

    fieldName

    String

    Oui

    Le nom du champ pour le paramètre de requête.

     condition.fieldName = '__instance_id__';

    operate

    String

    Oui

    L'opérateur utilisé pour le paramètre de requête. Les options incluent :

    • = pour les correspondances exactes.

    • BETWEEN pour les plages.

    • IN pour plusieurs valeurs.

    • != pour les exclusions.

     condition.operate = '=';

    value

    String

    Non

    La valeur spécifique pour le paramètre de requête.

    Important

    Ce paramètre est obligatoire sauf si l'opérateur est BETWEEN.

     condition.value = 'iot-public';

    betweenStart

    String

    Non

    La valeur de début pour un paramètre de plage.

    Important

    Requis lorsque l'opérateur est BETWEEN.

     condition.betweenStart = '0';

    betweenEnd

    String

    Non

    La valeur de fin pour un paramètre de plage.

    Important

    Requis lorsque l'opérateur est BETWEEN.

     condition.betweenEnd = '1000';

    Chaque paramètre de requête est associé à une condition. Vous pouvez définir un nombre spécifique de conditions sur la page produit de l'API. Pour plus de détails sur l'affichage des paramètres de requête d'API, consultez Manage API.

    Dans l'exemple de code fourni, l'API comporte trois paramètres de requête : __instance_id__, entityId et statDate, qui correspondent respectivement à condition, condition1 et condition2.

Résultat d'exécution

  • Succès :

    Des descriptions détaillées des paramètres renvoyés sont disponibles sur la page produit de l'API correspondante. Pour les opérations spécifiques, consultez la documentation de référence.

    L'exemple ci-dessous illustre un appel d'API réussi, renvoyant les statistiques du nombre de dispositifs pour l'instance publique du 21 février 2021 jusqu'au moment de l'appel API.

    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
        }
      }
    }
  • Échec :

    Il est possible de comprendre la raison d'un échec d'appel en examinant le code d'erreur dans le résultat.

    L'exemple ci-dessous montre un appel d'API ayant échoué en raison d'un paramètre de requête invalide, __instance_idd__. Corrigez-le en __instance_id__ et tentez à nouveau l'appel.