Todos os produtos
Search
Central de documentação

IoT Platform:Usar o SDK para Java

Última atualização: Jul 04, 2026

O SDK para Java da Alibaba Cloud simplifica a chamada de APIs do DataService Studio e facilita a recuperação de dados específicos. Integre o SDK ao seu projeto por meio de dependências Maven ou baixe o pacote de instalação para configuração local. Este tópico demonstra como usar o SDK para Java para chamar a API de métricas predefinidas, incluindo o método e um exemplo prático.

Pré-requisitos

  • Para chamar a API de métricas predefinidas, verifique se o produto e o dispositivo foram criados e se o backup de dados está concluído. Para obter instruções detalhadas, consulte API de métricas predefinidas.

  • Para chamar a API de dados do produto ou personalizar uma API de serviço, confirme que a API correspondente já foi criada. Para obter instruções detalhadas, consulte APIs de dados do produto e Personalizar API de serviço.

Para mais informações, consulte Gerenciamento e uso.

Instale o SDK

  1. Configure um ambiente de desenvolvimento Java.

    Baixe o ambiente no site oficial do Java e siga as instruções de instalação.

  2. Instale o IoT Platform SDK para Java.

    1. Obtenha o software Maven no site oficial do Apache Maven.

    2. Adicione o IoT Platform SDK para Java usando as seguintes dependências 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>                                

Iniciar uma solicitação

O trecho de código abaixo exemplifica a invocação das estatísticas históricas de contagem de dispositivos da API de métricas predefinidas no DataService Studio. Modifique o código conforme necessário, com base nas descrições dos parâmetros, para chamar a API desejada.

Importante

O limite máximo de solicitações por segundo (QPS) para uma única conta Alibaba Cloud ao chamar a API do DataService Studio é 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 solicitação do sistema:

    Nome

    Tipo

    Obrigatório

    Valor de exemplo

    Descrição

    accessKeyId

    String

    Sim

    LTAI

    Para obter o AccessKey ID e o AccessKey Secret, faça login no console do IoT Platform, passe o mouse sobre a foto do perfil da conta e clique em Accesskey Management.

    Nota

    Se estiver usando um usuário RAM, anexe a política de permissão AliyunIOTFullAccess para ative o gerenciamento de recursos do IoT Platform. Caso contrário, a conexão com o IoT Platform pode falhar. Para saber mais sobre o método de autorização, consulte Conceder acesso de usuários RAM ao IoT Platform.

    accessKeySecret

    String

    Sim

    yourAccessKeySecret

    Endpoint

    String

    Sim

    iot.cn-shanghai.aliyuncs.com

    Endereço do servidor da API de serviço da Alibaba Cloud. Verifique se a região corresponde à do produto IoT Platform.

    Neste exemplo, a região é China (Shanghai) (cn-shanghai).

    apiPath

    String

    Sim

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

    Caminho de operação da API. Na lista de APIs do DataService Studio, clique em View ao lado da API para acessar sua página de produto e encontrar o valor de API Path. Para mais detalhes, consulte Gerencie API.

    iotInstanceId

    String

    Sim

    iot-cn-npk1u

    ID da instância que hospeda a API.

    pageNum

    Integer

    Condicional

    1

    Número da página para paginação.

    pageSize

    Integer

    Condicional

    100

    Quantidade de entradas por página, com limite máximo de 100.

  • Parâmetros de solicitação de negócio:

    Nome

    Tipo

    Obrigatório

    Descrição

    Código relacionado

    fieldName

    String

    Sim

    Nome do parâmetro na solicitação.

    condition.setFieldName("entityId");

    operate

    String

    Sim

    Operador usado para o parâmetro. As opções incluem:

    • = para correspondência exata de valor.

    • BETWEEN para um intervalo de valores.

    • IN para múltiplos valores possíveis.

    • != para exclusão de um valor específico.

    condition.setOperate("=");

    value

    String

    Não

    Valor a ser correspondido para o parâmetro.

    Importante

    Este parâmetro é necessário, a menos que o operador seja BETWEEN.

    condition.setValue("all");

    betweenStart

    String

    Não

    Valor inicial para um parâmetro de intervalo.

    Importante

    Obrigatório quando o operador é BETWEEN.

    condition.setBetweenStart("0");

    betweenEnd

    String

    Não

    Valor final para um parâmetro de intervalo.

    Importante

    Obrigatório quando o operador é BETWEEN.

    condition.setBetweenEnd("100");

    Cada parâmetro de solicitação está associado a uma condition específica. Para configurar essas condições, consulte a página de produto da API, onde é possível visualizar e defina a quantidade desejada de condition. Para orientações sobre como acessar os parâmetros de solicitação da API, consulte Gerencie API.

    No código de exemplo fornecido, a API possui três parâmetros de solicitação: __instance_id__, entityId e statDate, que correspondem a condition, condition1 e condition2, respectivamente.

Resultado da execução

  • Sucesso:

    As descrições detalhadas dos parâmetros retornados estão disponíveis na página de produto da API correspondente. Para operações específicas, consulte Gerenciamento e uso.

    O exemplo abaixo ilustra uma resposta bem-sucedida da API, contendo estatísticas sobre o número de dispositivos da instância pública de 21 de fevereiro de 2021 até o momento da chamada.

    {
        "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"
        }
    }
  • Falha:

    Examine o código de erro no resultado para identificar o motivo da falha.

    O exemplo abaixo mostra uma chamada de API malsucedida devido a um parâmetro de solicitação inválido: __instance_idd__. Corrija-o para __instance_id__ e tente novamente.