Beberapa layanan menampilkan daftar item yang berpotensi besar, seperti baris atau deskripsi resource. Untuk menjaga penggunaan CPU dan penggunaan memori tetap terkendali, layanan menampilkan resource ini dalam pages: subset item yang lebih kecil dengan token kelanjutan untuk meminta subset berikutnya.
Melakukan iterasi item menurut halaman bisa membosankan. Library klien menyediakan adapter untuk mengonversi halaman menjadi iterator asinkron. Panduan ini menunjukkan cara menggunakan adapter ini.
Prasyarat
Panduan ini menggunakan layanan Secret Manager untuk mendemonstrasikan operasi daftar. Konsep yang disertakan dalam panduan ini juga berlaku untuk layanan lainnya.
Untuk mengikuti panduan ini, Anda harus mengaktifkan layanan Secret Manager, login, dan memastikan akun Anda memiliki izin yang diperlukan. Untuk panduan tentang cara memenuhi prasyarat ini, ikuti panduan memulai layanan.
Untuk petunjuk penyiapan lengkap untuk library Rust, lihat Menyiapkan lingkungan pengembangan.
Dependensi
Tambahkan library Secret Manager ke file Cargo.toml:
cargo add google-cloud-secretmanager-v1
Metode daftar iterasi
Untuk membantu melakukan iterasi item dalam metode daftar, API menampilkan implementasi trait ItemPaginator. Perkenalkan trait ke dalam cakupan menggunakan deklarasi use:
Untuk melakukan iterasi item, gunakan metode by_item.
Dalam kasus yang jarang terjadi, halaman mungkin berisi informasi tambahan yang perlu Anda akses, atau Anda mungkin perlu membuat checkpoint progres di seluruh proses. Jika diperlukan, Anda dapat melakukan iterasi halaman lengkap, bukan item individual.
Perkenalkan
Paginatorke dalam cakupan menggunakan deklarasiuse:Lakukan iterasi halaman menggunakan
by_page:
Menggunakan futures::Stream
Anda mungkin ingin menggunakan API ini dalam ekosistem Rust yang lebih besar dari aliran asinkron, seperti tokio::Stream. Hal ini dapat dicapai sebagai berikut:
Aktifkan fitur
unstable-streamsdi crategoogle_cloud_gax. Nama fitur ini berfungsi sebagai pemberitahuan bahwa API ini tidak stabil. Anda hanya boleh menggunakannya jika siap menangani gangguan yang diakibatkan oleh perubahan yang tidak kompatibel pada traitfutures::Stream.cargo add google-cloud-gax --features unstable-streamContoh berikut juga menggunakan trait
futures::stream::StreamExt, yang Anda aktifkan dengan menambahkan cratefutures.cargo add futuresTambahkan deklarasi
useyang diperlukan:Gunakan fungsi
into_streamuntuk mengonversiItemPaginatormenjadifutures::Stream.
Demikian pula, Anda dapat menggunakan fungsi into_stream untuk mengonversi Paginator menjadi futures::Stream.
Melanjutkan metode daftar dengan menetapkan token halaman berikutnya
Dalam beberapa kasus, seperti operasi daftar yang terganggu, Anda dapat menetapkan token halaman berikutnya untuk melanjutkan penomoran halaman dari halaman tertentu.
Kapan harus menggunakan helper paginator
Google Cloud Library Klien untuk Rust menyediakan adapter untuk mengonversi
RPC daftar seperti yang ditentukan oleh AIP-4233 menjadi jenis yang mengimplementasikan ItemPaginator dan
Paginator jika metode Daftar Google API mengikuti panduan penomoran halaman
yang ditentukan oleh AIP-158. Singkatnya, panduan ini mengharuskan setiap panggilan ke metode List menampilkan halaman item resource (misalnya, rahasia) beserta token yang dapat Anda teruskan ke metode List untuk mengambil halaman berikutnya.
Sebagian besar Google Cloud layanan mengikuti panduan ini. Jika tidak, Anda harus menerapkan adapter sendiri untuk melakukan iterasi hasil.