Tous les produits
Search
Centre de documentation

IoT Platform:Utiliser le SDK pour Java

Dernière mise à jour :Aug 10, 2026

Le SDK Java fourni par Alibaba Cloud simplifie l'appel des API de DataService Studio et permet de récupérer facilement des données spécifiques. Intégrez le SDK à votre projet via des dépendances Maven ou en téléchargeant le package d'installation pour une configuration locale. Cette rubrique explique comment utiliser le SDK Java pour appeler l'API des métriques prédéfinies, en détaillant la méthode et en fournissant un exemple.

Prérequis

  • Pour appeler l'API des métriques prédéfinies, assurez-vous que le produit et le périphérique sont créés et que la sauvegarde des données est terminée. Pour obtenir des instructions détaillées, consultez Métriques prédéfinies (API).

  • Pour appeler l'API de données produit ou personnaliser une API de service, vérifiez que l'API correspondante a été créée. Pour plus de détails, reportez-vous aux rubriques API de données produit et Personnalisation de l'API de service.

Pour plus d'informations, consultez la section Gestion et utilisation.

Installer le SDK

  1. Configurez un environnement de développement Java.

    Téléchargez l'environnement depuis le site officiel de Java et suivez les instructions d'installation.

  2. Installez le SDK IoT Platform pour Java.

    1. Téléchargez Apache Maven depuis le site officiel.

    2. Intégrez le SDK IoT Platform pour Java en ajoutant les dépendances Maven suivantes :

      <dependency>
          <groupId>com.aliyun</groupId>
          <artifactId>tea-openapi</artifactId>
          <version>0.0.11</version>
      </dependency>
      <dependency>
          <groupId>com.aliyun</groupId>
          <artifactId>iot20180120</artifactId>
          <version>1.1.0</version>
      </dependency>                                

Envoyer une requête

L'extrait de code ci-dessous montre comment appeler les statistiques historiques du nombre de périphériques via 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

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.

// Sample code for calling the DataService Studio API
import com.aliyun.iot20180120.Client;
import com.aliyun.iot20180120.models. * ;
import com.aliyun.teaopenapi.models.Config;
public class JavaDemo {
    /**
    * Initialize the client with AccessKey ID and AccessKey Secret
    * @param accessKeyId
    * @param accessKeySecret
    * @return Client
    * @throws Exception
     */
    public static Client createClient(String accessKeyId, String accessKeySecret) throws Exception {
        Config config = new Config();
        config.setAccessKeyId(accessKeyId);
        config.setAccessKeySecret(accessKeySecret);
        // Set your access domain name
        config.setEndpoint("iot.cn-shanghai.aliyuncs.com");
        return new Client(config);
    }
    public static void main(String[] args_) throws Exception {
        // Provide your AccessKey ID and AccessKey Secret
        Client client = JavaDemo.createClient("LTAI****************", "*********"));
        ListAnalyticsDataRequest request = new ListAnalyticsDataRequest();
        // Specify your API Path
        request.setApiPath("/iot-cn-npk1v******/system/query/hist_dev_cnt_stat");
        // Indicate the instance ID where your API is located
        request.setIotInstanceId("iot-cn-npk1v******");
        // Set paging parameters: page number
        request.setPageNum(1);
        // Set paging parameters: page size
        request.setPageSize(100);
        List < ListAnalyticsDataRequest.ListAnalyticsDataRequestCondition > conditions = new ArrayList < >();
        // Define your business-related request parameters. For Condition configuration, refer to the description below.
        ListAnalyticsDataRequest.ListAnalyticsDataRequestCondition condition = new ListAnalyticsDataRequest.ListAnalyticsDataRequestCondition();
        condition.setFieldName("__instance_id__");
        condition.setOperate("=");
        condition.setValue("iot-public");
        conditions.add(condition);
        ListAnalyticsDataRequest.ListAnalyticsDataRequestCondition condition1 = new ListAnalyticsDataRequest.ListAnalyticsDataRequestCondition();
        condition1.setFieldName("entityId");
        condition1.setOperate("=");
        condition1.setValue("all");
        conditions.add(condition1);
        ListAnalyticsDataRequest.ListAnalyticsDataRequestCondition condition2 = new ListAnalyticsDataRequest.ListAnalyticsDataRequestCondition();
        condition2.setFieldName("statDate");
        condition2.setOperate("=");
        condition2.setValue("20210221");
        conditions.add(condition2);
        request.setCondition(conditions);
        // Execute the API call and capture the response
        ListAnalyticsDataResponse listAnalyticsDataResponse = client.listAnalyticsData(request);
        // Output the response
        System.out.println(JSON.toJSONString(listAnalyticsDataResponse));
    }
}
  • Paramètres de requête système :

    Nom

    Type

    Obligatoire

    Valeur d'exemple

    Description

    accessKeyId

    String

    Oui

    LTAI

    Pour obtenir l'AccessKey ID et l'AccessKey Secret, connectez-vous à la console IoT Platform, placez le curseur sur la photo de profil du compte, puis cliquez sur Accesskey Management.

    Remarque

    Si vous utilisez un utilisateur RAM, attachez la stratégie d'autorisation AliyunIOTFullAccess pour activer la gestion des ressources IoT Platform. Sans cette étape, la connexion à IoT Platform peut échouer. Pour la méthode d'autorisation, reportez-vous à la section Accorder l'accès à IoT Platform aux utilisateurs RAM.

    accessKeySecret

    String

    Oui

    yourAccessKeySecret

    Endpoint

    String

    Oui

    iot.cn-shanghai.aliyuncs.com

    Adresse du serveur API du service Alibaba Cloud. Assurez-vous que la région correspond à celle du produit IoT Platform.

    Dans cet exemple, la région est Chine (Shanghai) (cn-shanghai).

    apiPath

    String

    Oui

    /iot-cn-npk1v/system/query/hist_dev_cnt_stat

    Chemin d'opération de l'API. Dans la liste des API de DataService Studio, cliquez sur DataService Studio à côté de l'API pour accéder à sa page produit et trouver la valeur API Path. Pour plus de détails, consultez la section Gérer l'API.

    iotInstanceId

    String

    Oui

    iot-cn-npk1u

    ID de l'instance hébergeant l'API.

    pageNum

    Integer

    Conditionnel

    1

    Numéro de page pour la pagination.

    pageSize

    Integer

    Conditionnel

    100

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

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

    Nom

    Type

    Obligatoire

    Description

    Code associé

    fieldName

    String

    Oui

    Nom du paramètre dans la requête.

    condition.setFieldName("entityId");

    operate

    String

    Oui

    Opérateur utilisé pour le paramètre. Les options disponibles sont :

    • = pour une correspondance de valeur exacte.

    • BETWEEN pour une plage de valeurs.

    • IN pour plusieurs valeurs possibles.

    • != pour exclure une valeur spécifique.

    condition.setOperate("=");

    value

    String

    Non

    Valeur à faire correspondre pour le paramètre.

    Important

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

    condition.setValue("all");

    betweenStart

    String

    Non

    Valeur de début pour un paramètre de plage.

    Important

    Requis lorsque l'opérateur est BETWEEN.

    condition.setBetweenStart("0");

    betweenEnd

    String

    Non

    Valeur de fin pour un paramètre de plage.

    Important

    Requis lorsque l'opérateur est BETWEEN.

    condition.setBetweenEnd("100");

    Chaque paramètre de requête est associé à une condition spécifique. Pour configurer ces conditions, consultez la page produit de l'API où vous pouvez afficher et définir le nombre souhaité de condition. Pour savoir comment accéder aux paramètres de requête de l'API, consultez la section Gérer l'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 de l'exécution

  • Succès :

    Les 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 section Gestion et utilisation.

    L'exemple ci-dessous illustre une réponse d'API réussie, incluant les statistiques sur le nombre de périphériques pour l'instance publique du 21 février 2021 jusqu'au moment de l'appel à l'API.

    {
        "body": {
            "data": {
                "hasNext": false,
                "pageNum": 1,
                "pageSize": 100,
                "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}]"
            },
            "requestId": "6B78B8DB-EBDB-4451-BE30-893714******",
            "success": true
        },
        "headers": {
            "access-control-allow-origin": "*",
            "date": "Mon, 15 Mar 2021 07:24:01 GMT",
            "content-length": "425",
            "access-control-max-age": "172800",
            "x-acs-request-id": "6B78B8DB-EBDB-4451-BE30-893714******",
            "access-control-allow-headers": "X-Requested-With, X-Sequence, _aop_secret, _aop_signature",
            "connection": "keep-alive",
            "content-type": "application/json;charset=utf-8",
            "access-control-allow-methods": "POST, GET, OPTIONS"
        }
    }
  • Échec :

    Examinez le code d'erreur présent dans le résultat pour comprendre la raison de l'échec.

    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 réessayez la requête.