Kode semu berikut menguraikan prosedur yang dapat Anda ikuti menggunakan API silsilah data untuk mengambil link silsilah data dari semua region yang tersedia.
- Penyiapan input:
linksToFetch
= 5 (jumlah link yang akan diambil dari semua region)regionalPageToken
= "" (token halaman regional terakhir yang diterima digunakan untuk penomoran halaman)- Buat:
- daftar semua region yang akan di-fan-out bernama
regions
. - daftar wilayah yang tidak dapat dijangkau yang disebut
unreachable
. - daftar kosong link yang ditemukan, yang disebut
foundLinks
. - variabel kosong
nextPageToken
dannextRegionalPageToken
. - variabel kosong
lastRegion
. - variabel kosong
lastRegionLinksCount
.
- daftar semua region yang akan di-fan-out bernama
- Urutkan
regions
menurut abjad. - Uraikan
regionalPageToken
- Jika kosong maka lanjutkan ke langkah 4
- Jika tidak kosong,
- mengurai
regionalPageToken
dengan membaginya menurut titik pertama menjadi dua segmen - memfilter wilayah dengan hanya mengambil wilayah setelah (dalam urutan abjad) segmen pertama dari
regionalPageToken
yang diuraikan. - simpan segmen kedua ke samping untuk menggunakannya di semua panggilan projects.locations.searchLinks.
- mengurai
- Lakukan panggilan ke projects.locations.searchLinks di setiap region dalam daftar
regions
secara paralel. - Tunggu hingga semua permintaan selesai.
- Filter respons yang berhasil dan simpan nama wilayah yang gagal dalam daftar
unreachable
. - Untuk setiap respons (dimulai dengan wilayah pertama dalam urutan abjad)
- jika tidak ada link yang ditampilkan bersama dengan token halaman yang tidak kosong
- nama wilayah toko di
lastRegion
. - menyimpan pageToken yang diterima di
nextPageToken
. - mengabaikan respons yang tersisa.
- nama wilayah toko di
- sebaliknya
- nama wilayah toko di
lastRegion
. - menyimpan link yang diterima di
foundLinks
(hinggalinksToFetch
). - menyimpan pageToken yang diterima di
nextPageToken
. - simpan jumlah link yang diambil dari respons di
lastRegionLinksCount
. - jika
foundLinks
lebih kecil darilinksToFetch
- melanjutkan kode semu dengan respons yang diterima berikutnya dalam urutan abjad.
- jika
foundLinks
sama denganlinksToFetch
- buat permintaan lain ke endpoint projects.locations.searchLinks di region yang sama, tetapi tetapkan parameter
pageSize
ke nilailastRegionLinksCount
. - menyimpan pageToken yang diterima di
nextPageToken
. - lanjutkan ke langkah 8
- buat permintaan lain ke endpoint projects.locations.searchLinks di region yang sama, tetapi tetapkan parameter
- nama wilayah toko di
- jika tidak ada link yang ditampilkan bersama dengan token halaman yang tidak kosong
- Tambahkan nextPageToken dengan
lastRegion
di awal (yaitu "[region].[receivedNextPageToken]" untuk membuatnextRegionalPageToken
guna menangani penomoran halaman dalam panggilan berturut-turut.