Utilice el SDK de Node.js de Alibaba Cloud para invocar operaciones de API en DataService Studio y recuperar datos específicos de forma sencilla. Este tema ilustra cómo usar el SDK de Node.js para llamar a la API de métricas predefinidas; se incluye tanto el método como un ejemplo práctico.
Requisitos previos
Para llamar a 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 API for preset metrics.
Para invocar la API de datos del producto o personalizar una API de servicio, confirme que la API correspondiente esté establecida. Para obtener instrucciones detalladas, consulte Product data API y Customize service API.
Para más información, consulte the referenced document.
Instalar el SDK
Para configurar el entorno de desarrollo de Node.js, visite el sitio web oficial de Node.js y siga las instrucciones de instalación proporcionadas.
-
Para instalar el SDK de OpenAPI de Alibaba Cloud, ejecute los siguientes comandos.
npm install @alicloud/openapi-client npm install @alicloud/iot20180120
Iniciar una solicitud
A continuación se muestra un ejemplo de cómo llamar a 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, basándose en las descripciones de los parámetros, para llamar a la API deseada.
Tenga en cuenta que el número máximo de solicitudes por segundo (QPS) para una sola cuenta de Alibaba Cloud al llamar a la API de DataService Studio es 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 solicitud del sistema:
Nombre
Tipo
Obligatorio
Valor de ejemplo
Descripción
endpoint
String
Sí
iot.cn-shanghai.aliyuncs.com
El endpoint del servidor de API del servicio de Alibaba Cloud. Asegúrese de que la región coincida con la región del producto de IoT Platform.
En este ejemplo, la región es East China 2 (cn-shanghai).
accessKeyId
String
Sí
LTAI**
Vaya a la consola de IoT Platform, pase el cursor sobre la imagen de perfil de la cuenta y haga clic en AccessKey Management para obtener el AccessKey ID y el AccessKey Secret.
NotaLos usuarios de Resource Access Management (RAM) deben tener adjunta la política AliyunIOTFullAccess para gestionar recursos de IoT Platform. De lo contrario, la conexión fallará. Para obtener detalles sobre la autorización, consulte Grant RAM user access to IoT Platform.
accessKeySecret
String
Sí
**
regionId
String
Sí
cn-shanghai
El código de la región. Para consultar la lista de regiones compatibles, vea Supported regions.
apiPath
String
Sí
iot-cn-npk1u
La ruta de la operación de API. Consulte la lista de API en DataService Studio y haga clic en View para acceder a la página del producto de la API y obtener el valor de API Patch. Para más detalles, consulte the referenced document.
pageNum
Integer
Obligatorio cuando la paginación está habilitada
1
El número de página para la paginación.
pageSize
Integer
Obligatorio cuando la paginación está habilitada
100
El número de entradas por página, hasta un máximo de 100.
iotInstanceId
String
Sí
iot-cn-npk1v
El ID de la instancia donde se despliega su API.
-
Parámetros de solicitud relacionados con el negocio:
Nombre
Tipo
Obligatorio
Descripción
Código relacionado
fieldName
String
Sí
El nombre del campo para el parámetro de solicitud.
condition.fieldName = '__instance_id__';operate
String
Sí
El operador utilizado para el parámetro de solicitud. Las opciones incluyen:
=para coincidencias exactas.BETWEENpara rangos.INpara varios valores.!=para exclusiones.
condition.operate = '=';value
String
No
El valor específico para el parámetro de solicitud.
ImportanteEste parámetro es obligatorio a menos que el operador sea
BETWEEN.condition.value = 'iot-public';betweenStart
String
No
El valor inicial para un parámetro de rango.
ImportanteObligatorio cuando el operador es
BETWEEN.condition.betweenStart = '0';betweenEnd
String
No
El valor final para un parámetro de rango.
ImportanteObligatorio cuando el operador es
BETWEEN.condition.betweenEnd = '1000';Cada parámetro de solicitud está asociado con una
condition. Puede establecer un número específico deconditionsen la página del producto de la API. Para obtener detalles sobre cómo ver 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,condition1ycondition2, respectivamente.
Resultado de la ejecución
-
Éxito:
Las descripciones detalladas de los parámetros devueltos se encuentran en la página del producto de la API correspondiente. Para operaciones específicas, consulte the referenced document.
El siguiente ejemplo demuestra una llamada exitosa a la API, que devuelve estadísticas de recuento de dispositivos para la instancia pública desde el 21 de febrero de 2021 hasta el momento de la llamada.
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 } } } -
Con errores:
Puede determinar la razón de una llamada con errores al examinar el código de error en el resultado.
El siguiente ejemplo muestra una llamada a la API con errores debido a un parámetro de solicitud no válido:
__instance_idd__. Corríjalo a__instance_id__e intente realizar la llamada nuevamente.