SDK Java yang disediakan oleh Alibaba Cloud menyederhanakan proses pemanggilan API DataService Studio, sehingga memudahkan pengambilan data tertentu. Anda dapat mengintegrasikan SDK ke dalam proyek menggunakan dependensi Maven atau dengan mengunduh paket instalasi untuk penyiapan lokal. Topik ini menjelaskan cara menggunakan SDK Java untuk memanggil API metrik preset, termasuk metode dan contohnya.
Prasyarat
Untuk memanggil API metrik preset, pastikan produk dan perangkat telah dibuat serta pencadangan data telah selesai. Untuk petunjuk lengkap, lihat API Metrik Preset.
Untuk memanggil API data produk atau menyesuaikan API layanan, pastikan API yang sesuai telah dibuat. Untuk petunjuk lengkap, lihat API Data Produk dan Menyesuaikan API Layanan.
Untuk informasi tambahan, lihat Manajemen dan Penggunaan.
Instal SDK
Siapkan lingkungan pengembangan Java.
Unduh lingkungan dari situs web resmi Java dan ikuti petunjuk instalasi yang disediakan.
Instal SDK IoT Platform untuk Java.
Dapatkan perangkat lunak Maven dari situs web resmi Apache Maven.
Masukkan SDK IoT Platform untuk Java menggunakan dependensi Maven berikut:
<dependency> <groupId>com.aliyun</groupId> <artifactId>tea-openapi</artifactId> <version>0.0.11</version> </dependency> <dependency> <groupId>com.aliyun</groupId> <artifactId>iot20180120</artifactId> <version>1.1.0</version> </dependency>
Mulai permintaan
Berikut adalah contoh potongan kode untuk memanggil statistik jumlah perangkat historis dari API metrik preset di DataService Studio. Sesuaikan kode tersebut berdasarkan deskripsi parameter untuk memanggil API yang diinginkan.
Jumlah maksimum permintaan per detik (QPS) untuk satu Akun Alibaba Cloud saat memanggil API DataService Studio adalah 100.
// Contoh kode untuk memanggil API DataService Studio
import com.aliyun.iot20180120.Client;
import com.aliyun.iot20180120.models. * ;
import com.aliyun.teaopenapi.models.Config;
public class JavaDemo {
/**
* Inisialisasi klien dengan ID AccessKey dan rahasia AccessKey
* @param accessKeyId
* @param accessKeySecret
* @return Client
* @throws Exception
*/
public static Client createClient(String accessKeyId, String accessKeySecret) throws Exception {
Config config = new Config();
config.setAccessKeyId(accessKeyId);
config.setAccessKeySecret(accessKeySecret);
// Tetapkan nama domain akses Anda
config.setEndpoint("iot.cn-shanghai.aliyuncs.com");
return new Client(config);
}
public static void main(String[] args_) throws Exception {
// Masukkan ID AccessKey dan rahasia AccessKey Anda
Client client = JavaDemo.createClient("LTAI****************", "*********"));
ListAnalyticsDataRequest request = new ListAnalyticsDataRequest();
// Tentukan Path API Anda
request.setApiPath("/iot-cn-npk1v******/system/query/hist_dev_cnt_stat");
// Tunjukkan ID instans tempat API Anda berada
request.setIotInstanceId("iot-cn-npk1v******");
// Tetapkan parameter penomoran halaman: nomor halaman
request.setPageNum(1);
// Tetapkan parameter penomoran halaman: ukuran halaman
request.setPageSize(100);
List < ListAnalyticsDataRequest.ListAnalyticsDataRequestCondition > conditions = new ArrayList < >();
// Definisikan parameter permintaan terkait bisnis Anda. Untuk konfigurasi Condition, lihat deskripsi di bawah.
ListAnalyticsDataRequest.ListAnalyticsDataRequestCondition condition = new ListAnalyticsDataRequest.ListAnalyticsDataRequestCondition();
condition.setFieldName("__instance_id__");
condition.setOperate("=");
condition.setValue("iot-public");
conditions.add(condition);
ListAnalyticsDataRequest.ListAnalyticsDataRequestCondition condition1 = new ListAnalyticsDataRequest.ListAnalyticsDataRequestCondition();
condition1.setFieldName("entityId");
condition1.setOperate("=");
condition1.setValue("all");
conditions.add(condition1);
ListAnalyticsDataRequest.ListAnalyticsDataRequestCondition condition2 = new ListAnalyticsDataRequest.ListAnalyticsDataRequestCondition();
condition2.setFieldName("statDate");
condition2.setOperate("=");
condition2.setValue("20210221");
conditions.add(condition2);
request.setCondition(conditions);
// Jalankan pemanggilan API dan tangkap tanggapan
ListAnalyticsDataResponse listAnalyticsDataResponse = client.listAnalyticsData(request);
// Tampilkan tanggapan
System.out.println(JSON.toJSONString(listAnalyticsDataResponse));
}
}Parameter permintaan sistem:
Nama
Tipe
Wajib
Nilai Contoh
Deskripsi
accessKeyId
String
Ya
LTAI****************
Untuk mendapatkan ID AccessKey dan rahasia AccessKey, masuk ke konsol IoT Platform, arahkan kursor ke gambar profil akun, lalu klik sekali Accesskey Management.
CatatanJika menggunakan Pengguna RAM, sambungkan kebijakan izin AliyunIOTFullAccess untuk mengaktifkan manajemen sumber daya IoT Platform. Jika tidak, koneksi ke IoT Platform mungkin gagal. Untuk metode otorisasi, lihat Berikan Akses Pengguna RAM ke IoT Platform.
accessKeySecret
String
Ya
yourAccessKeySecret
Endpoint
String
Ya
iot.cn-shanghai.aliyuncs.com
Alamat server API layanan Alibaba Cloud. Pastikan wilayahnya sesuai dengan wilayah produk IoT Platform.
Pada contoh ini, wilayahnya adalah Tiongkok (Shanghai) (cn-shanghai).
apiPath
String
Ya
/iot-cn-npk1v******/system/query/hist_dev_cnt_stat
Jalur operasi untuk API. Di daftar API DataService Studio, klik sekali View di sebelah API untuk membuka halaman produknya dan temukan nilai API Path. Untuk detail lebih lanjut, lihat Kelola API.
iotInstanceId
String
Ya
iot-cn-npk1u******
ID instans yang menampung API.
pageNum
Integer
Bersyarat
1
Nomor halaman untuk penomoran halaman.
pageSize
Integer
Bersyarat
100
Jumlah entri per halaman, hingga maksimum 100.
Parameter permintaan terkait bisnis:
Nama
Tipe
Wajib
Deskripsi
Kode Terkait
fieldName
String
Ya
Nama parameter dalam permintaan.
condition.setFieldName("entityId");operate
String
Ya
Operator yang digunakan untuk parameter. Opsi meliputi:
=untuk pencocokan nilai eksak.BETWEENuntuk rentang nilai.INuntuk beberapa nilai yang mungkin.!=untuk mengecualikan nilai tertentu.
condition.setOperate("=");value
String
Tidak
Nilai yang akan dicocokkan untuk parameter.
PentingParameter ini diperlukan kecuali jika operatornya adalah
BETWEEN.condition.setValue("all");betweenStart
String
Tidak
Nilai awal untuk parameter rentang.
PentingWajib jika operatornya adalah
BETWEEN.condition.setBetweenStart("0");betweenEnd
String
Tidak
Nilai akhir untuk parameter rentang.
PentingWajib jika operatornya adalah
BETWEEN.condition.setBetweenEnd("100");Setiap parameter permintaan dikaitkan dengan
conditiontertentu. Untuk mengonfigurasi kondisi ini, lihat halaman produk API tempat Anda dapat melihat dan menetapkan jumlahconditionyang diinginkan. Untuk panduan mengakses parameter permintaan API, lihat Kelola API.Pada 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 dapat ditemukan di halaman produk API yang sesuai. Untuk operasi spesifik, lihat Manajemen dan Penggunaan.
Contoh berikut menggambarkan tanggapan API yang berhasil, yang mencakup statistik jumlah perangkat untuk instans publik dari tanggal 21 Februari 2021 hingga waktu pemanggilan API.
{ "body": { "data": { "hasNext": false, "pageNum": 1, "pageSize": 100, "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}]" }, "requestId": "6B78B8DB-EBDB-4451-BE30-893714******", "success": true }, "headers": { "access-control-allow-origin": "*", "date": "Mon, 15 Mar 2021 07:24:01 GMT", "content-length": "425", "access-control-max-age": "172800", "x-acs-request-id": "6B78B8DB-EBDB-4451-BE30-893714******", "access-control-allow-headers": "X-Requested-With, X-Sequence, _aop_secret, _aop_signature", "connection": "keep-alive", "content-type": "application/json;charset=utf-8", "access-control-allow-methods": "POST, GET, OPTIONS" } }Gagal:
Penyebab kegagalan dapat dipahami dengan memeriksa kode kesalahan dalam hasil.
Contoh berikut menunjukkan pemanggilan API yang gagal karena parameter permintaan yang tidak valid,
__instance_idd__. Perbaiki menjadi__instance_id__dan coba lagi permintaannya.