O pseudocódigo seguinte descreve um procedimento que pode seguir usando a API Data Lineage para obter links de linhagem de dados de todas as regiões disponíveis.
- Configuração de entrada:
linksToFetch
= 5 (número de links a obter de todas as regiões)regionalPageToken
= "" (token da página regional recebido pela última vez usado para paginação)
- Criar:
- lista de todas as regiões a expandir denominada
regions
. - lista de regiões inacessíveis denominada
unreachable
. - Uma lista vazia de links encontrados denominada
foundLinks
. - uma variável vazia
nextPageToken
enextRegionalPageToken
. - uma variável vazia
lastRegion
. - uma variável vazia
lastRegionLinksCount
.
- lista de todas as regiões a expandir denominada
- Ordenar
regions
alfabeticamente. - Analisar
regionalPageToken
- Se estiver vazio, avance para o passo 5
- Se não estiver vazio, então
- analisa
regionalPageToken
dividindo-o pelo primeiro ponto em dois segmentos - Filtrar regiões tomando apenas as que estão depois (por ordem alfabética) do primeiro segmento do
regionalPageToken
analisado. - Armazenar o segundo segmento para o usar em todas as chamadas projects.locations.searchLinks.
- analisa
- Faça uma chamada para projects.locations.searchLinks
em cada região na lista
regions
em paralelo. - Aguarde a conclusão de todos os pedidos.
- Filtre as respostas bem-sucedidas e armazene os nomes das regiões com falhas na lista
unreachable
. - Para cada uma das respostas (começando pela primeira região por ordem alfabética)
- se não forem devolvidos links juntamente com um token de página não vazio
- armazenar o nome da região da loja em
lastRegion
. - guardar pageToken recebido em
nextPageToken
. - Ignorar as respostas restantes.
- armazenar o nome da região da loja em
- caso contrário
- armazenar o nome da região da loja em
lastRegion
. - guardar links recebidos em
foundLinks
(atélinksToFetch
). - guardar pageToken recebido em
nextPageToken
. - Armazenar o número de links obtidos da resposta em
lastRegionLinksCount
. - se
foundLinks
for inferior alinksToFetch
- continuar o pseudocódigo com a próxima resposta recebida por ordem alfabética.
- se
foundLinks
for igual alinksToFetch
- Faça outro pedido ao ponto final projects.locations.searchLinks na mesma região, mas defina o parâmetro
pageSize
para o valor delastRegionLinksCount
. - A loja recebeu pageToken em
nextPageToken
. - continue para o passo 9
- Faça outro pedido ao ponto final projects.locations.searchLinks na mesma região, mas defina o parâmetro
- armazenar o nome da região da loja em
- se não forem devolvidos links juntamente com um token de página não vazio
- Adicione
nextPageToken
comlastRegion
(ou seja,[region].[receivedNextPageToken]
) para criarnextRegionalPageToken
para processar a paginação em chamadas consecutivas.