Beberapa layanan menampilkan daftar item yang berpotensi besar, seperti baris atau deskripsi resource. Untuk menjaga penggunaan CPU dan memori tetap terkendali, layanan menampilkan resource ini dalam pages: subkumpulan item yang lebih kecil dengan token kelanjutan untuk meminta subkumpulan berikutnya.
Melakukan iterasi pada item menurut halaman bisa jadi membosankan. Library klien menyediakan adaptor untuk mengonversi halaman menjadi iterator asinkron. Panduan ini menunjukkan cara menggunakan adapter ini.
Prasyarat
Panduan ini menggunakan layanan Secret Manager untuk mendemonstrasikan operasi list. Konsep yang disertakan dalam panduan ini juga berlaku untuk layanan lain.
Untuk mengikuti panduan ini, Anda harus mengaktifkan layanan Secret Manager, login, dan memastikan akun Anda memiliki izin yang diperlukan. Untuk mendapatkan panduan tentang cara memenuhi prasyarat ini, ikuti panduan memulai cepat layanan.
Untuk mengetahui petunjuk penyiapan lengkap untuk library Rust, lihat Menyiapkan lingkungan pengembangan Anda.
Dependensi
Tambahkan library Secret Manager ke file Cargo.toml Anda:
cargo add google-cloud-secretmanager-v1
Metode daftar iterasi
Untuk membantu mengulangi item dalam metode daftar, API menampilkan penerapan
trait ItemPaginator. Perkenalkan trait ke dalam cakupan menggunakan deklarasi use:
Untuk melakukan iterasi pada item, gunakan metode by_item.
Dalam kasus yang jarang terjadi, halaman mungkin berisi informasi tambahan yang perlu Anda akses, atau Anda mungkin perlu menandai progres di seluruh proses. Jika diperlukan, Anda dapat melakukan iterasi pada halaman lengkap, bukan item individual.
Memperkenalkan
Paginatorke dalam cakupan menggunakan deklarasiuse:Lakukan iterasi pada halaman menggunakan
by_page:
Bekerja dengan futures::Stream
Anda mungkin ingin menggunakan API ini dalam ekosistem Rust yang lebih besar untuk aliran asinkron, seperti tokio::Stream. Hal ini dapat dilakukan 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 Anda siap menangani gangguan apa pun yang diakibatkan oleh perubahan yang tidak kompatibel pada karakteristikfutures::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 menyetel 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 penomoran halaman
Google Cloud Client Libraries for Rust menyediakan adaptor untuk mengonversi RPC daftar seperti yang ditentukan oleh AIP-4233 menjadi jenis yang menerapkan ItemPaginator dan Paginator jika metode Google API List mengikuti panduan penomoran halaman yang ditentukan oleh AIP-158. Singkatnya, panduan ini mewajibkan setiap panggilan ke metode
List menampilkan halaman item resource (misalnya, secret) 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 mengimplementasikan adaptor Anda sendiri untuk melakukan iterasi pada hasilnya.