Topik ini menjelaskan cara menginstal dan menggunakan SDK untuk Java. Contoh berikut menunjukkan cara memanggil operasi untuk mengirimkan task pendaftaran nama domain.
Prasyarat
Pasangan AccessKey telah dibuat untuk RAM user Anda. Akun Alibaba Cloud memiliki semua izin atas sumber daya. Jika pasangan AccessKey akun Alibaba Cloud Anda bocor, sumber daya Anda akan terpapar dan menimbulkan risiko keamanan. Oleh karena itu, kami menyarankan agar Anda menggunakan pasangan AccessKey dari RAM user. Untuk informasi tentang cara mendapatkan pasangan AccessKey, lihat Create an AccessKey pair.
RAM user Anda telah diberikan izin untuk mengelola sumber daya yang terkait dengan nama domain. Dalam contoh ini, kebijakan sistem AliyunDomainFullAccess ditetapkan pada RAM user tersebut.
Anda dapat menggunakan salah satu kebijakan sistem berikut:
AliyunDomainFullAccess: memberikan izin penuh untuk mengelola layanan Domain Names.
AliyunDomainReadonlyAccess: memberikan izin read-only untuk mendaftarkan dan mengelola nama domain.
Anda juga dapat menggunakan kebijakan kustom.
Untuk informasi lebih lanjut tentang cara membuat kebijakan kustom, lihat Create custom policies.
Pasangan AccessKey RAM user telah dikonfigurasi dalam variabel lingkungan. Untuk informasi lebih lanjut, lihat Configure environment variables in Linux, macOS, and Windows.
Instal SDK
Buat repositori Maven dalam file konfigurasi Maven.
<repositories> <repository> <id>sonatype-nexus-staging</id> <name>Sonatype Nexus Staging</name> <url>https://oss.sonatype.org/service/local/staging/deploy/maven2/</url> <releases> <enabled>true</enabled> </releases> <snapshots> <enabled>true</enabled> </snapshots> </repository> </repositories>Buka file pom.xml proyek Maven, tambahkan konfigurasi dependensi ke dalam elemen
<dependencies>, lalu refresh konfigurasi Maven.<dependency> <groupId>com.aliyun</groupId> <artifactId>domain20180129</artifactId> <version>3.15.1</version> </dependency>
Gunakan SDK
1. Inisialisasi client
SDK Alibaba Cloud mendukung berbagai jenis kredensial akses, seperti pasangan AccessKey dan token Security Token Service (STS), untuk menginisialisasi client. Untuk informasi lebih lanjut, lihat Manage access credentials. Dalam contoh ini, pasangan AccessKey digunakan untuk menginisialisasi client.
import com.aliyun.domain20180129.Client;
import com.aliyun.teaopenapi.models.Config;
public class Sample {
private static Client createClient() throws Exception {
Config config = new Config()
// Wajib. Pastikan variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_ID dikonfigurasi di lingkungan runtime kode.
.setAccessKeyId(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"))
// Wajib. Pastikan variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_SECRET dikonfigurasi di lingkungan runtime kode.
.setAccessKeySecret(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"))
// Tentukan titik akhir. Untuk informasi tentang titik akhir, kunjungi https://api.aliyun.com/product/Domain.
.setEndpoint("domain.aliyuncs.com");
return new Client(config);
}
}2. Buat objek permintaan untuk operasi API
Sebelum membuat objek permintaan, temukan operasi API yang akan dipanggil dengan merujuk ke API Reference dan periksa parameter-parameter operasi API tersebut.
Nama objek permintaan harus mengikuti format {nama API}Request. Misalnya, objek permintaan untuk SaveSingleTaskForCreatingOrderActivate adalah SaveSingleTaskForCreatingOrderActivateRequest.
SaveSingleTaskForCreatingOrderActivateRequest request = new SaveSingleTaskForCreatingOrderActivateRequest()
.setDomainName("example.com");3. Lakukan pemanggilan
Nama objek respons harus mengikuti format {nama API}Response. Misalnya, objek respons untuk SaveSingleTaskForCreatingOrderActivate adalah SaveSingleTaskForCreatingOrderActivateResponse.
// Tentukan parameter runtime.
RuntimeOptions runtime = new RuntimeOptions();
SaveSingleTaskForCreatingOrderActivateResponse response = client.saveSingleTaskForCreatingOrderActivateWithOptions(request, runtime);4. Tangani pengecualian
Pengecualian yang mungkin terjadi saat menggunakan SDK untuk Java diklasifikasikan menjadi dua jenis: TeaUnretryableException dan TeaException.
TeaUnretryableException: Pengecualian ini disebabkan oleh masalah jaringan dan dilemparkan jika jumlah percobaan ulang telah mencapai batas maksimum.
TeaException: Pengecualian ini disebabkan oleh kesalahan bisnis.
PentingDalam contoh ini, pesan kesalahan hanya ditampilkan sebagai referensi. Dalam skenario bisnis aktual, jangan abaikan pengecualian dalam proyek Anda. Kami menyarankan agar Anda menangani pengecualian secara tepat, misalnya dengan melaporkan pengecualian, mencatat log, atau melakukan percobaan ulang. Hal ini membantu memastikan ketangguhan dan stabilitas sistem Anda.
try {
Client client = createClient();
SaveSingleTaskForCreatingOrderActivateRequest request = new SaveSingleTaskForCreatingOrderActivateRequest()
.setDomainName("example.com");
// Tentukan parameter runtime.
RuntimeOptions runtime = new RuntimeOptions();
SaveSingleTaskForCreatingOrderActivateResponse response = client.saveSingleTaskForCreatingOrderActivateWithOptions(request, runtime);
} catch (TeaUnretryableException ue) {
// Tangani pengecualian dengan hati-hati dalam skenario bisnis aktual Anda dan jangan abaikan pengecualian dalam proyek Anda. Dalam contoh ini, pesan kesalahan hanya dicetak sebagai referensi.
ue.printStackTrace();
// Dapatkan pesan kesalahan.
System.out.println(ue.getMessage());
// Dapatkan pesan permintaan dan kueri informasi permintaan saat terjadi kesalahan.
System.out.println(ue.getLastRequest());
} catch (TeaException e) {
// Tangani pengecualian dengan hati-hati dalam skenario bisnis aktual Anda dan jangan abaikan pengecualian dalam proyek Anda. Dalam contoh ini, pesan kesalahan hanya dicetak sebagai referensi.
e.printStackTrace();
// Dapatkan kode kesalahan.
System.out.println(e.getCode());
// Dapatkan pesan kesalahan yang berisi ID permintaan.
System.out.println(e.getMessage());
// Dapatkan informasi kesalahan detail yang dikembalikan oleh server.
System.out.println(e.getData());
} catch (Exception e) {
// Tangani pengecualian dengan hati-hati dalam skenario bisnis aktual Anda dan jangan abaikan pengecualian dalam proyek Anda. Dalam contoh ini, pesan kesalahan hanya dicetak sebagai referensi.
e.printStackTrace();
}5. Contoh lengkap
import com.aliyun.domain20180129.Client;
import com.aliyun.domain20180129.models.SaveSingleTaskForCreatingOrderActivateRequest;
import com.aliyun.domain20180129.models.SaveSingleTaskForCreatingOrderActivateResponse;
import com.aliyun.tea.TeaException;
import com.aliyun.tea.TeaUnretryableException;
import com.aliyun.teaopenapi.models.Config;
import com.aliyun.teautil.models.RuntimeOptions;
public class Sample {
private static Client createClient() throws Exception {
Config config = new Config()
// Wajib. Pastikan variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_ID dikonfigurasi di lingkungan runtime kode.
.setAccessKeyId(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"))
// Wajib. Pastikan variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_SECRET dikonfigurasi di lingkungan runtime kode.
.setAccessKeySecret(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"))
// Tentukan titik akhir. Untuk informasi tentang titik akhir, kunjungi https://api.aliyun.com/product/Domain.
.setEndpoint("domain.aliyuncs.com");
return new Client(config);
}
public static void main(String[] args_) {
try {
Client client = createClient();
SaveSingleTaskForCreatingOrderActivateRequest request = new SaveSingleTaskForCreatingOrderActivateRequest()
.setDomainName("example.com");
// Tentukan parameter runtime.
RuntimeOptions runtime = new RuntimeOptions();
SaveSingleTaskForCreatingOrderActivateResponse response = client.saveSingleTaskForCreatingOrderActivateWithOptions(request, runtime);
} catch (TeaUnretryableException ue) {
// Tangani pengecualian dengan hati-hati dalam skenario bisnis aktual Anda dan jangan abaikan pengecualian dalam proyek Anda. Dalam contoh ini, pesan kesalahan hanya dicetak sebagai referensi.
ue.printStackTrace();
// Dapatkan pesan kesalahan.
System.out.println(ue.getMessage());
// Dapatkan pesan permintaan.
System.out.println(ue.getLastRequest());
} catch (TeaException e) {
// Tangani pengecualian dengan hati-hati dalam skenario bisnis aktual Anda dan jangan abaikan pengecualian dalam proyek Anda. Dalam contoh ini, pesan kesalahan hanya dicetak sebagai referensi.
e.printStackTrace();
// Dapatkan kode kesalahan.
System.out.println(e.getCode());
// Dapatkan pesan kesalahan yang berisi ID permintaan.
System.out.println(e.getMessage());
// Dapatkan informasi kesalahan detail yang dikembalikan oleh server.
System.out.println(e.getData());
} catch (Exception e) {
// Tangani pengecualian dengan hati-hati dalam skenario bisnis aktual Anda dan jangan abaikan pengecualian dalam proyek Anda. Dalam contoh ini, pesan kesalahan hanya dicetak sebagai referensi.
e.printStackTrace();
}
}
}