Mengambil link silsilah dari beberapa wilayah

Kode semu berikut menguraikan prosedur yang dapat Anda ikuti menggunakan API silsilah data untuk mengambil link silsilah data dari semua region yang tersedia.

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