Use o SDK para Node.js da Alibaba Cloud para invocar operações de API no DataService Studio e recuperar dados específicos com facilidade. Este tópico demonstra como usar o SDK para Node.js para chamar a API de métricas predefinidas, apresentando 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 para métricas predefinidas.
Para invocar a API de dados do produto ou personalizar uma API de serviço, confirme se a API correspondente foi criada. Para obter instruções detalhadas, consulte API de dados do produto e Personalizar API de serviço.
Para mais informações, consulte o documento referenciado.
Instale o SDK
Para configurar o ambiente de desenvolvimento Node.js, acesse o site oficial do Node.js e siga as instruções de instalação.
-
Para instalar o SDK OpenAPI da Alibaba Cloud, execute os comandos a seguir.
npm install @alicloud/openapi-client npm install @alicloud/iot20180120
Iniciar uma solicitação
O exemplo a seguir mostra como chamar as 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.
O número máximo de solicitações por segundo (QPS) para uma única conta da Alibaba Cloud ao chamar a API do DataService Studio é 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 solicitação do sistema:
Nome
Tipo
Obrigatório
Valor de exemplo
Descrição
endpoint
String
Sim
iot.cn-shanghai.aliyuncs.com
O endpoint do servidor da API de serviço da Alibaba Cloud. Certifique-se de que a região corresponda à região do produto IoT Platform.
Neste exemplo, a região é Leste da China 2 (cn-shanghai).
accessKeyId
String
Sim
LTAI**
Acesse o console do IoT Platform, passe o mouse sobre a foto do perfil da conta e clique em AccessKey Management para obter o AccessKey ID e o AccessKey Secret.
NotaOs usuários do Resource Access Management (RAM) devem ter a política AliyunIOTFullAccess anexada para gerenciar recursos do IoT Platform. Caso contrário, a conexão falhará. Para detalhes sobre autorização, consulte Conceder acesso de usuário RAM ao IoT Platform.
accessKeySecret
String
Sim
**
regionId
String
Sim
cn-shanghai
O código da região. Para obter uma lista das regiões suportadas, consulte Regiões suportadas.
apiPath
String
Sim
iot-cn-npk1u
O caminho da operação da API. Visualize a lista de APIs no DataService Studio e clique em View para acessar a página do produto da API e obter o valor de API Patch. Para mais detalhes, consulte o documento referenciado.
pageNum
Integer
Obrigatório quando a paginação está ativada
1
O número da página para paginação.
pageSize
Integer
Obrigatório quando a paginação está ativada
100
O número de entradas por página, até o máximo de 100.
iotInstanceId
String
Sim
iot-cn-npk1v
O ID da instância onde sua API está implantada.
-
Parâmetros de solicitação relacionados ao negócio:
Nome
Tipo
Obrigatório
Descrição
Código relacionado
fieldName
String
Sim
O nome do campo para o parâmetro de solicitação.
condition.fieldName = '__instance_id__';operate
String
Sim
O operador usado para o parâmetro de solicitação. As opções incluem:
=para correspondências exatas.BETWEENpara intervalos.INpara múltiplos valores.!=para exclusões.
condition.operate = '=';value
String
Não
O valor específico para o parâmetro de solicitação.
ImportanteEste parâmetro é obrigatório, a menos que o operador seja
BETWEEN.condition.value = 'iot-public';betweenStart
String
Não
O valor inicial para um parâmetro de intervalo.
ImportanteObrigatório quando o operador é
BETWEEN.condition.betweenStart = '0';betweenEnd
String
Não
O valor final para um parâmetro de intervalo.
ImportanteObrigatório quando o operador é
BETWEEN.condition.betweenEnd = '1000';Cada parâmetro de solicitação está associado a uma
condition. Defina um número específico deconditionsna página do produto da API. Para detalhes sobre como visualizar 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,condition1econdition2, respectivamente.
Resultado da execução
-
Sucesso:
A página do produto da API correspondente contém descrições detalhadas dos parâmetros retornados. Para operações específicas, consulte o documento referenciado.
O exemplo a seguir demonstra uma chamada de API bem-sucedida, retornando estatísticas de contagem de dispositivos para a instância pública de 21 de fevereiro de 2021 até o momento da chamada da 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 } } } -
Falha:
Examine o código de erro no resultado para identificar o motivo de uma chamada com falha.
O exemplo a seguir mostra uma chamada de API com falha devido a um parâmetro de solicitação inválido,
__instance_idd__. Corrija-o para__instance_id__e tente a chamada novamente.