Manfaatkan SDK Node.js dari Alibaba Cloud untuk memanggil operasi API di DataService Studio dan mengambil data tertentu dengan mudah. Topik ini menjelaskan cara menggunakan SDK Node.js untuk memanggil API metrik preset, lengkap dengan metode dan contohnya.
Prasyarat
Untuk memanggil API metrik preset, pastikan produk dan perangkat telah dibuat serta pencadangan data telah selesai. Untuk petunjuk lengkapnya, lihat API untuk metrik preset.
Untuk memanggil API data produk atau menyesuaikan API layanan, pastikan API yang sesuai telah dibuat. Untuk petunjuk lengkapnya, lihat API data produk dan Menyesuaikan API layanan.
Untuk informasi lebih lanjut, lihat dokumen referensi.
Instal SDK
Untuk menyiapkan lingkungan pengembangan Node.js, kunjungi situs web resmi Node.js dan ikuti petunjuk instalasi yang disediakan.
Untuk menginstal SDK OpenAPI Alibaba Cloud, jalankan perintah berikut.
npm install @alicloud/openapi-client npm install @alicloud/iot20180120
Mulai Permintaan
Berikut adalah contoh cara memanggil statistik jumlah perangkat historis dari API metrik preset di DataService Studio. Sesuaikan kode tersebut berdasarkan deskripsi parameter untuk memanggil API yang diinginkan.
Perhatikan bahwa jumlah maksimum permintaan per detik (QPS) untuk satu Akun Alibaba Cloud saat memanggil API DataService Studio adalah 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();Parameter permintaan sistem:
Nama
Tipe
Wajib
Nilai contoh
Deskripsi
endpoint
String
Ya
iot.cn-shanghai.aliyuncs.com
Titik akhir untuk server API layanan Alibaba Cloud. Pastikan wilayahnya sesuai dengan wilayah produk IoT Platform.
Dalam contoh ini, wilayahnya adalah Tiongkok Timur 2 (cn-shanghai).
accessKeyId
String
Ya
LTAI************
Buka konsol IoT Platform, arahkan kursor ke foto profil akun, lalu klik AccessKey Management untuk mengambil ID AccessKey dan rahasia AccessKey.
CatatanPengguna Manajemen Akses Sumber Daya (RAM) harus memiliki kebijakan AliyunIOTFullAccess yang dilampirkan untuk mengelola sumber daya IoT Platform. Jika tidak, koneksi akan gagal. Untuk detail otorisasi, lihat Memberikan akses Pengguna RAM ke IoT Platform.
accessKeySecret
String
Ya
************
regionId
String
Ya
cn-shanghai
Kode wilayah. Untuk daftar wilayah yang didukung, lihat Wilayah yang didukung.
apiPath
String
Ya
iot-cn-npk1u******
Jalur operasi API. Lihat daftar API di DataService Studio dan klik Lihat untuk mengakses halaman produk API guna mendapatkan nilai API Patch. Untuk detail selengkapnya, lihat dokumen referensi.
pageNum
Integer
Wajib jika paging diaktifkan
1
Nomor halaman untuk paginasi.
pageSize
Integer
Wajib jika paging diaktifkan
100
Jumlah entri per halaman, hingga maksimum 100.
iotInstanceId
String
Ya
iot-cn-npk1v******
ID instans tempat API Anda ditempatkan.
Parameter permintaan terkait bisnis:
Nama
Tipe
Wajib
Deskripsi
Kode terkait
fieldName
String
Ya
Nama bidang untuk parameter permintaan.
condition.fieldName = '__instance_id__';operate
String
Ya
Operator yang digunakan untuk parameter permintaan. Opsi meliputi:
=untuk pencocokan eksak.BETWEENuntuk rentang.INuntuk beberapa nilai.!=untuk pengecualian.
condition.operate = '=';value
String
Tidak
Nilai spesifik untuk parameter permintaan.
PentingParameter ini wajib kecuali operatornya adalah
BETWEEN.condition.value = 'iot-public';betweenStart
String
Tidak
Nilai awal untuk parameter rentang.
PentingWajib jika operatornya adalah
BETWEEN.condition.betweenStart = '0';betweenEnd
String
Tidak
Nilai akhir untuk parameter rentang.
PentingWajib jika operatornya adalah
BETWEEN.condition.betweenEnd = '1000';Setiap parameter permintaan dikaitkan dengan
condition. Anda dapat menetapkan sejumlahconditionstertentu pada halaman produk API. Untuk detail cara melihat parameter permintaan API, lihat Mengelola API.Dalam contoh kode yang diberikan, API memiliki tiga parameter permintaan: __instance_id__, entityId, dan statDate, yang masing-masing berkorespondensi dengan
condition,condition1, dancondition2.
Hasil Eksekusi
Berhasil:
Deskripsi rinci parameter yang dikembalikan tersedia di halaman produk API yang sesuai. Untuk langkah-langkah spesifik, lihat dokumen referensi.
Contoh berikut menunjukkan pemanggilan API yang berhasil, yang mengembalikan statistik jumlah perangkat untuk instans publik dari tanggal 21 Februari 2021 hingga waktu pemanggilan 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 } } }Gagal:
Alasan kegagalan pemanggilan dapat diketahui dengan memeriksa kode kesalahan dalam hasil respons.
Contoh berikut menunjukkan pemanggilan API yang gagal karena parameter permintaan yang tidak valid,
__instance_idd__. Perbaiki menjadi__instance_id__lalu coba panggil kembali.