Todos los productos
Search
Centro de documentos

IoT Platform:Uso del SDK para Java

Última actualización: Sep 03, 2026

El SDK de Java proporcionado por Alibaba Cloud simplifica el proceso de invocación de las API de DataService Studio y facilita la recuperación de datos específicos. Puede integrar el SDK en su proyecto mediante dependencias de Maven o descargar el paquete de instalación para una configuración local. Este tema muestra cómo utilizar el SDK de Java para invocar la API de métricas predefinidas, e incluye el método y un ejemplo.

Requisitos previos

  • Para invocar 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 Preset Metrics API.

  • Para invocar la API de datos del producto o personalizar una API de servicio, asegúrese de que la API correspondiente esté creada. Para obtener instrucciones detalladas, consulte Product data APIs y Customize Service API.

Para obtener más información, consulte Management and Usage.

Instalación del SDK

  1. Configure un entorno de desarrollo de Java.

    Descargue el entorno desde el sitio web oficial de Java y siga las instrucciones proporcionadas para la instalación.

  2. Instale el IoT Platform SDK para Java.

    1. Obtenga el software Maven desde el sitio web oficial de Apache Maven.

    2. Incorpore el IoT Platform SDK para Java mediante las siguientes dependencias de Maven:

      <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>                                

Inicio de una solicitud

A continuación se muestra un fragmento de código de ejemplo para invocar 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 con base en las descripciones de los parámetros para invocar la API deseada.

Importante

El máximo de solicitudes por segundo (QPS) para una sola cuenta de Alibaba Cloud al invocar la API de DataService Studio es 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));
    }
}
  • Parámetros de solicitud del sistema:

    Nombre

    Tipo

    Obligatorio

    Valor de ejemplo

    Descripción

    accessKeyId

    String

    Sí

    LTAI

    Para obtener el AccessKey ID y el AccessKey Secret, inicie sesión en la consola de IoT Platform, pase el cursor sobre la imagen de perfil de la cuenta y haga clic en Accesskey Management.

    Nota

    Si utiliza un usuario RAM, adjunte la política de permisos AliyunIOTFullAccess para habilitar la gestión de recursos de IoT Platform. De lo contrario, la conexión a IoT Platform podría fallar. Para conocer el método de autorización, consulte Grant RAM Users Access to IoT Platform.

    accessKeySecret

    String

    Sí

    yourAccessKeySecret

    Endpoint

    String

    Sí

    iot.cn-shanghai.aliyuncs.com

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

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

    apiPath

    String

    Sí

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

    La ruta de operación de la API. En la lista de API de DataService Studio, haga clic en View junto a la API para acceder a su página de producto y encontrar el valor de API Path. Para obtener más detalles, consulte Manage API.

    iotInstanceId

    String

    Sí

    iot-cn-npk1u

    El ID de la instancia que aloja la API.

    pageNum

    Integer

    Condicional

    1

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

    pageSize

    Integer

    Condicional

    100

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

  • Parámetros de solicitud relacionados con el negocio:

    Nombre

    Tipo

    Obligatorio

    Descripción

    Código relacionado

    fieldName

    String

    Sí

    El nombre del parámetro en la solicitud.

    condition.setFieldName("entityId");

    operate

    String

    Sí

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

    • = para coincidencia exacta de valor.

    • BETWEEN para un rango de valores.

    • IN para varios valores posibles.

    • != para exclusión de un valor específico.

    condition.setOperate("=");

    value

    String

    No

    El valor que se debe coincidir para el parámetro.

    Importante

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

    condition.setValue("all");

    betweenStart

    String

    No

    El valor inicial para un parámetro de rango.

    Importante

    Obligatorio cuando el operador es BETWEEN.

    condition.setBetweenStart("0");

    betweenEnd

    String

    No

    El valor final para un parámetro de rango.

    Importante

    Obligatorio cuando el operador es BETWEEN.

    condition.setBetweenEnd("100");

    Cada parámetro de solicitud está asociado con una condition específica. Para configurar estas condiciones, consulte la página de producto de la API, donde puede ver y establecer el número deseado de condition. Para obtener orientación sobre cómo acceder a 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 de producto de la API correspondiente. Para operaciones específicas, consulte Management and Usage.

    El siguiente ejemplo ilustra la respuesta exitosa de la API, que incluye estadísticas sobre el número de dispositivos para la instancia pública desde el 21 de febrero de 2021 hasta el momento de la invocación de la 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"
        }
    }
  • Error:

    Es posible determinar la razón del error al examinar el código de error en el resultado.

    El siguiente ejemplo muestra una invocación de API con errores debido a un parámetro de solicitud no válido, __instance_idd__. Corríjalo a __instance_id__ y reintente la solicitud.