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
nextPageTokendannextRegionalPageTokenkosong. - variabel
lastRegionkosong. - variabel
lastRegionLinksCountkosong.
- daftar semua region yang akan di-fan-out yang disebut
- Urutkan
regionsmenurut abjad. - Menguraikan
regionalPageToken- Jika kosong, lanjutkan ke langkah 5
- Jika tidak kosong, maka
- mengurai
regionalPageTokendengan membaginya menurut titik pertama menjadi dua segmen - memfilter wilayah dengan hanya mengambil wilayah yang berada setelah (dalam urutan abjad) segmen pertama dari
regionalPageTokenyang diuraikan. - simpan segmen kedua untuk digunakan di semua panggilan projects.locations.searchLinks.
- mengurai
- Lakukan panggilan ke projects.locations.searchLinks di setiap region dalam daftar
regionssecara 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
foundLinkskurang darilinksToFetch- lanjutkan pseudocode dengan respons berikutnya yang diterima dalam urutan abjad.
- jika
foundLinkssama denganlinksToFetch- buat permintaan lain ke endpoint projects.locations.searchLinks di region yang sama, tetapi tetapkan parameter
pageSizeke 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
nextPageTokendenganlastRegion(yaitu[region].[receivedNextPageToken]) untuk membuatnextRegionalPageTokenguna menangani penomoran halaman dalam panggilan berturut-turut.