Untuk mempermudah pemanggilan API, kami merekomendasikan Anda mengintegrasikan Alibaba Cloud SDK ke dalam proyek Anda. SDK ini menyederhanakan proses pengembangan, mempercepat integrasi fitur, serta mengurangi biaya operasional dan pemeliharaan (O&M). Topik ini menjelaskan cara mengintegrasikan Alibaba Cloud SDK V1.0 untuk Node.js ke dalam proyek Anda dan menggunakan SDK tersebut untuk pengembangan.
Prasyarat
Node.js 8.x atau versi lebih baru telah terinstal.
Instal SDK
Alibaba Cloud SDK V1.0 untuk Node.js hanya mendukung panggilan umum yang menggunakan CommonRequest. Metode pemanggilan ini menyederhanakan proses pemanggilan API dan dapat diimplementasikan dengan mengintegrasikan dependensi @alicloud/pop-core. Jalankan perintah berikut untuk menginstal dependensi SDK:
npm install @alicloud/pop-coreGunakan SDK
Anda dapat menggunakan Alibaba Cloud SDK V1.0 untuk Node.js untuk memanggil operasi API dalam gaya remote procedure call (RPC) atau resource-oriented architecture (ROA). Prosedur untuk memanggil operasi API bergaya RPC dan ROA berbeda. Bagian ini menjelaskan prosedur-prosedur tersebut. Dalam contoh-contoh berikut, operasi API bergaya RPC DescribeInstances dari Elastic Compute Service (ECS) dipanggil, dan operasi API bergaya ROA DescribeClustersV1 dari Container Service for Kubernetes (ACK) dipanggil.
1. Inisialisasi klien permintaan
Semua operasi API dipanggil menggunakan klien RPC atau klien ROA yang disediakan oleh pustaka SDK @alicloud/pop-core. Sebelum memanggil operasi API, Anda harus menginisialisasi klien permintaan. Dalam contoh ini, sepasang AccessKey digunakan untuk menginisialisasi klien permintaan. Untuk informasi lebih lanjut tentang metode inisialisasi klien lainnya, lihat Inisialisasi klien SDK menggunakan token STS.
Dalam contoh ini, pasangan AccessKey diperoleh dari variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_ID dan ALIBABA_CLOUD_ACCESS_KEY_SECRET, yang harus dikonfigurasi sebelum menjalankan kode. Untuk informasi lebih lanjut, lihat Konfigurasikan variabel lingkungan di Linux, macOS, dan Windows.
Klien RPC
// Metode untuk menginisialisasi klien RPC.
const Core = require('@alicloud/pop-core');
var client = new Core({
// Diperlukan. Pastikan bahwa variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_ID dikonfigurasi di lingkungan runtime kode
accessKeyId: process.env['ALIBABA_CLOUD_ACCESS_KEY_ID'],
// Diperlukan. Pastikan bahwa variabel lingkungan berikut diatur di lingkungan runtime kode: ALIBABA_CLOUD_ACCESS_KEY_SECRET.
accessKeySecret: process.env['ALIBABA_CLOUD_ACCESS_KEY_SECRET'],
// Nama domain dalam format http(s)://Titik akhir layanan cloud. Kami merekomendasikan Anda menggunakan HTTPS. Contohnya, titik akhir ECS adalah http://ecs-cn-hangzhou.aliyuncs.com.
endpoint: 'https://ecs.cn-hangzhou.aliyuncs.com',
// Versi API layanan cloud. Contohnya, nomor versi API ECS adalah 2014-05-26.
apiVersion: '2014-05-26'
});Klien ROA
// Metode untuk menginisialisasi klien ROA.
var ROAClient = require('@alicloud/pop-core').ROAClient;
var client = new ROAClient({
// Diperlukan. Pastikan bahwa variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_ID dikonfigurasi di lingkungan runtime kode
accessKeyId: process.env['ALIBABA_CLOUD_ACCESS_KEY_ID'],
// Diperlukan. Pastikan bahwa variabel lingkungan berikut diatur di lingkungan runtime kode: ALIBABA_CLOUD_ACCESS_KEY_SECRET.
accessKeySecret: process.env['ALIBABA_CLOUD_ACCESS_KEY_SECRET'],
// Nama domain dalam format http(s)://Titik akhir layanan cloud. Kami merekomendasikan Anda menggunakan HTTPS. Contohnya, titik akhir ECS adalah http://cs.cn-chengdu.aliyuncs.com.
endpoint: 'https://cs.cn-chengdu.aliyuncs.com',
// Versi API layanan cloud. Contohnya, nomor versi API ECS adalah 2014-05-26.
apiVersion: '2015-12-15'
});2. Bangun parameter permintaan yang diperlukan
Anda harus menentukan operasi API, objek parameter permintaan, dan objek parameter runtime.
Alibaba Cloud SDK V1.0 tidak mendukung unggahan file lokal. Jika Anda perlu mengunggah file lokal, gunakan Alibaba Cloud SDK V2.0.
Parameter untuk memanggil operasi API bergaya RPC
// Nama operasi API.
var action = 'DescribeInstances'
// Parameter permintaan.
var params = {
"RegionId": "cn-hangzhou",
"InstanceIds": "[\"i-bp67************\", \"i-7xva************\", … \"i-7xvc************\"]"
}
// Parameter runtime.
var requestOption = {
method: 'POST',
formatParams: false,
};Parameter untuk memanggil operasi API bergaya ROA
// Metode permintaan.
const method = "GET"
// Parameter URI.
const uriPattern = '/api/v1/clusters';
// Parameter query.
var queryParams = {
"cluster_type": "Kubernetes",
"name": "cluster-demo"
};
// Badan permintaan, yang merupakan string JSON. Contoh: `{"nodepool_info":{"name":"nodepool-test","type":"ess"}}`;
const body = "";
// Header permintaan kustom.
const headers = {
"Content-Type": "application/json"
};
// Parameter runtime.
const options = {
timeout: 3000, // default 3000 ms
};3. Ajukan permintaan API
Gunakan klien yang dibuat di Langkah 1 untuk memanggil operasi request, yang mengajukan permintaan. Operasi ini menggunakan parameter yang dibangun di Langkah 2.
Panggil operasi API bergaya RPC
// Ajukan permintaan.
client.request(action, params, requestOption).then((result) => {
console.log(JSON.stringify(result));
}, (ex) => {
console.log(ex);
})Panggil operasi API bergaya ROA
// Ajukan permintaan.
roaClient.request(method, uriPattern, queryParams, body, headers, options)
.then((response) => {
console.log('Respons ROA:', response);
})
.catch((error) => {
console.error('Kesalahan ROA:', error);
});4. Tangani kesalahan
Jika kode status HTTP atau pesan respons yang dikembalikan dari operasi API bukan 200, OK, Success, atau success, maka kesalahan akan dilemparkan. Alibaba Cloud SDK mendukung kode status HTTP kustom. Anda dapat mendefinisikan metode penanganan kesalahan untuk program Anda. Untuk informasi lebih lanjut, lihat Tangani pengecualian.
Referensi
Untuk informasi lebih lanjut tentang gaya RPC dan ROA, lihat Gaya API.
Untuk informasi lebih lanjut tentang pengaturan SDK tingkat lanjut, seperti pengaturan proxy dan pengaturan waktu habis, lihat Pengaturan lanjutan.
Untuk informasi lebih lanjut tentang cara membuat pasangan AccessKey, lihat Buat pasangan AccessKey.