Dokumen ini menjelaskan perbedaan antara Alibaba Cloud SDK V1.0 dan V2.0, termasuk metode pembuatan, bahasa yang didukung, dukungan untuk lebih banyak bahasa, serta contoh SDK untuk skenario tertentu. Jika Anda sebelumnya telah mengintegrasikan layanan Alibaba Cloud menggunakan Alibaba Cloud SDK V1.0 dan menemukan dokumentasi berbeda dari yang biasa digunakan, Anda dapat membaca dokumen ini untuk memahami perbedaannya. Pengguna baru disarankan untuk langsung menggunakan Alibaba Cloud SDK V2.0.
Perbandingan antara Alibaba Cloud SDK V1.0 dan V2.0
Item | Alibaba Cloud SDK V1.0 (tidak direkomendasikan) | Alibaba Cloud SDK V2.0 (direkomendasikan) |
Metode Pembuatan | SDK dibuat berdasarkan template berbeda untuk setiap bahasa pemrograman, sehingga fitur yang dienkapsulasi bervariasi tergantung pada bahasa. Hal ini menghasilkan pengalaman pengguna yang tidak konsisten. | SDK dibuat menggunakan Darabonba, sebuah bahasa domain-spesifik (DSL). Darabonba bertindak sebagai perantara untuk menghasilkan SDK lintas bahasa pemrograman dengan otomatisasi verifikasi sintaksis, memberikan pengalaman pengguna yang konsisten. |
Bahasa yang Didukung | Hanya tersedia untuk beberapa bahasa pemrograman utama (maksimal tiga). | Mendukung enam bahasa pemrograman utama. |
Dukungan Tambahan untuk Lebih Banyak Bahasa | Sulit untuk menambahkan dukungan untuk lebih banyak bahasa karena keterbatasan template. | SDK untuk lebih banyak bahasa dapat dihasilkan dengan mudah melalui pengembangan pohon sintaksis abstrak (AST) di Darabonba. |
Contoh SDK | Kode contoh berbeda antar bahasa pemrograman, dan keakuratannya tidak dapat dijamin. | Kode contoh ditulis dalam logika yang sama untuk semua bahasa pemrograman dan diverifikasi untuk memastikan keakuratannya. |
Contoh SDK untuk Skenario Tertentu | Sulit untuk membuat contoh SDK untuk skenario tertentu, hanya tersedia untuk beberapa layanan dalam jumlah terbatas bahasa. | Anda dapat menggunakan Darabonba untuk menghasilkan contoh SDK untuk skenario tertentu dalam berbagai bahasa pemrograman. Untuk informasi lebih lanjut, kunjungi Pusat Kode Contoh. |
Alibaba Cloud SDK V1.0 (tidak direkomendasikan)
Disarankan untuk tidak menggunakan Alibaba Cloud SDK V1.0 karena masalah seperti pengalaman pengguna yang tidak konsisten dan ketidakmampuan untuk mengisolasi informasi autentikasi.
Gambar berikut menunjukkan arsitektur dasar Alibaba Cloud SDK V1.0:
Arsitektur tersebut mencakup lapisan-lapisan berikut:
Lapisan Service SDK: Memproses parameter spesifik operasi API.
Lapisan Core SDK: Mengonversi parameter spesifik operasi API menjadi parameter permintaan HTTP.
Lapisan HTTP Client: Memulai permintaan.
Untuk menggunakan Alibaba Cloud SDK V1.0, Anda harus mengimpor core SDK dan service SDK.
Kode contoh
Pemanggilan operasi API dari beberapa layanan secara bersamaan menyebabkan objek client umum tidak dapat diisolasi berdasarkan layanan, yang dapat menimbulkan masalah keselamatan thread.
<!-- ECS sdk -->
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-ecs</artifactId>
<version>5.11.7</version>
</dependency>
<!-- core sdk -->
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-core</artifactId>
<version>4.6.1</version>
</dependency>package com.example;
import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.IAcsClient;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.exceptions.ServerException;
import com.aliyuncs.profile.DefaultProfile;
import com.google.gson.Gson;
import com.aliyuncs.ecs.model.v20140526.*;
public class DescribeInstanceStatus {
public static void main(String[] args) {
// Pastikan variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_ID
// dan ALIBABA_CLOUD_ACCESS_KEY_SECRET telah diatur.
DefaultProfile profile = DefaultProfile.getProfile(
"<YOUR-REGION-ID>",
System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"),
System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET")
);
// gunakan STS Token
// DefaultProfile profile = DefaultProfile.getProfile(
// "<YOUR-REGION-ID>", // ID wilayah
// System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"), // ID AccessKey akun RAM
// System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"), // Rahasia AccessKey akun RAM
// System.getenv("ALIBABA_CLOUD_SECURITY_TOKEN") // STS Token
// );
// inisialisasi klien acs
IAcsClient client = new DefaultAcsClient(profile);
// Buat permintaan untuk menanyakan status instance
DescribeInstanceStatusRequest request = new DescribeInstanceStatusRequest();
request.setRegionId("<YOUR-REGION-ID>");
try {
DescribeInstanceStatusResponse response = client.getAcsResponse(request);
System.out.println(new Gson().toJson(response));
} catch (ServerException e) {
e.printStackTrace();
} catch (ClientException e) {
System.out.println("ErrCode:" + e.getErrCode());
System.out.println("ErrMsg:" + e.getErrMsg());
System.out.println("RequestId:" + e.getRequestId());
}
}
}Alibaba Cloud SDK V2.0 (direkomendasikan)
Alibaba Cloud SDK V2.0 dikembangkan untuk mengatasi masalah yang ditemui dalam versi sebelumnya, seperti pengalaman pengguna yang tidak konsisten dan biaya integrasi tinggi. Versi ini menyediakan fitur baru untuk menyederhanakan penggunaan SDK, mengurangi biaya integrasi, dan meningkatkan keandalan.
Alibaba Cloud SDK V2.0 dibuat menggunakan Darabonba, sebuah DSL yang mengabstraksi perbedaan gaya API di berbagai layanan Alibaba Cloud. Dengan menguraikan AST yang dihasilkan dari DSL, lebih mudah untuk menjembatani kesenjangan antara gaya API dan menghasilkan SDK dari spesifikasi API. Manfaat utama Alibaba Cloud SDK V2.0 meliputi:
Pengalaman Pengguna yang Konsisten: Semua layanan Alibaba Cloud menggunakan SDK dengan cara yang sama, memastikan pengalaman pengguna yang seragam.
Biaya Pengembangan Lebih Rendah: DSL memungkinkan deskripsi logika bisnis yang lebih baik, mengurangi ketergantungan pada pustaka inti dan biaya pembaruan SDK.
Isolasi Informasi Identitas dan Autentikasi: Setiap layanan Alibaba Cloud menyediakan objek klien SDK yang terpisah, memastikan keamanan thread dan isolasi informasi autentikasi.
Skema Kompleks: Mendukung pemanggilan API dalam skenario kompleks, seperti analisis gambar menggunakan Visual Intelligence API dan Object Storage Service (OSS).
Contoh SDK untuk skenario tertentu: Alibaba Cloud SDK V2.0 menyediakan kode contoh untuk setiap permintaan API. Selain itu, SDK ini juga mencakup kode contoh untuk skenario yang melibatkan pengiriman beberapa permintaan API secara bersamaan. Informasi ini membantu Anda menggunakan SDK dengan lebih mudah dan memahami skenario bisnis di mana layanan Alibaba Cloud dapat diterapkan.
Pengguna baru disarankan untuk langsung menggunakan Alibaba Cloud SDK V2.0. Pengguna lama Alibaba Cloud SDK V1.0 disarankan untuk memperbarui ke versi terbaru sesegera mungkin.
Kode contoh
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>ecs20140526</artifactId>
<version>5.1.8</version>
</dependency>package com.example;
import com.aliyun.tea.TeaException;
import com.aliyun.teaopenapi.models.Config;
import com.aliyun.ecs20140526.Client;
import com.aliyun.ecs20140526.models.DescribeInstanceStatusRequest;
public class Sample {
public static void main(String[] args) throws Exception {
Config config = new Config();
// Diperlukan. ID AccessKey Anda. Pastikan variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_ID dikonfigurasi untuk lingkungan runtime.
config.setAccessKeyId(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"));
// Diperlukan. Rahasia AccessKey Anda. Pastikan variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_SECRET dikonfigurasi untuk lingkungan runtime.
config.setAccessKeySecret(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"));
// Titik akhir Elastic Compute Service (ECS). Untuk informasi lebih lanjut, kunjungi https://api.aliyun.com/product/Ecs.
config.setEndpoint("<Endpoint>");
Client client = new Client(config);
DescribeInstanceStatusRequest request = new DescribeInstanceStatusRequest()
.setRegionId("<YOUR-REGION-ID>");
try {
// Jika Anda menyalin dan menjalankan kode contoh, tulis kode Anda sendiri untuk menampilkan respons dari operasi API.
client.describeInstanceStatus(request);
} catch (TeaException error) {
error.printStackTrace();
} catch (Exception error) {
error.printStackTrace();
}
}
}Lihat informasi dependensi tentang SDK
Kunjungi OpenAPI Portal dan pilih layanan. Contoh ini menggunakan Virtual Private Cloud (VPC).

Pilih SDK version.

Pilih bahasa. Di bagian Installation Method, Anda dapat melihat dependensi SDK untuk bahasa yang dipilih. Di bagian Overview, Anda dapat melihat versi SDK terbaru.
