Pseudocode berikut menguraikan prosedur yang dapat Anda ikuti menggunakan Data Lineage API untuk mengambil link garis keturunan data dari semua region yang tersedia.
- Penyiapan input:
linksToFetch
= 5 (jumlah link yang akan diambil dari semua region)regionalPageToken
= "" (token halaman regional yang terakhir diterima dan digunakan untuk penomoran halaman)
- Buat:
- daftar semua region yang akan di-fan-out yang disebut
regions
. - daftar region yang tidak dapat dijangkau yang disebut
unreachable
. - daftar kosong link yang ditemukan yang disebut
foundLinks
. - variabel
nextPageToken
dannextRegionalPageToken
kosong. - variabel
lastRegion
kosong. - variabel
lastRegionLinksCount
kosong.
- daftar semua region yang akan di-fan-out yang disebut
- Urutkan
regions
menurut abjad. - Menguraikan
regionalPageToken
- Jika kosong, lanjutkan ke langkah 5
- Jika tidak kosong, maka
- mengurai
regionalPageToken
dengan membaginya menurut titik pertama menjadi dua segmen - memfilter wilayah dengan hanya mengambil wilayah yang berada setelah (dalam urutan abjad) segmen pertama dari
regionalPageToken
yang diuraikan. - simpan segmen kedua untuk digunakan 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 region yang gagal dalam daftar
unreachable
. - Untuk setiap respons (dimulai dengan region pertama dalam urutan abjad)
- jika tidak ada link yang ditampilkan bersama dengan token halaman yang tidak kosong
- nama wilayah penyimpanan di
lastRegion
. - simpan pageToken yang diterima di
nextPageToken
. - abaikan respons yang tersisa.
- nama wilayah penyimpanan di
- otherwise
- nama wilayah penyimpanan di
lastRegion
. - simpan link yang diterima di
foundLinks
(hinggalinksToFetch
). - simpan pageToken yang diterima di
nextPageToken
. - menyimpan jumlah link yang diambil dari respons di
lastRegionLinksCount
. - jika
foundLinks
kurang darilinksToFetch
- lanjutkan pseudocode dengan respons berikutnya yang diterima 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
. - store menerima pageToken di
nextPageToken
. - lanjutkan ke langkah 9
- buat permintaan lain ke endpoint projects.locations.searchLinks di region yang sama, tetapi tetapkan parameter
- nama wilayah penyimpanan di
- jika tidak ada link yang ditampilkan bersama dengan token halaman yang tidak kosong
- Tambahkan
nextPageToken
denganlastRegion
(yaitu[region].[receivedNextPageToken]
) untuk membuatnextRegionalPageToken
guna menangani penomoran halaman dalam panggilan berturut-turut.