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
nextPageTokenenextRegionalPageToken. - uma variável vazia
lastRegion. - uma variável vazia
lastRegionLinksCount.
- lista de todas as regiões a expandir denominada
- Ordenar
regionsalfabeticamente. - Analisar
regionalPageToken- Se estiver vazio, avance para o passo 5
- Se não estiver vazio, então
- analisa
regionalPageTokendividindo-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
regionalPageTokenanalisado. - 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
regionsem 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
foundLinksfor inferior alinksToFetch- continuar o pseudocódigo com a próxima resposta recebida por ordem alfabética.
- se
foundLinksfor igual alinksToFetch- Faça outro pedido ao ponto final projects.locations.searchLinks na mesma região, mas defina o parâmetro
pageSizepara 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
nextPageTokencomlastRegion(ou seja,[region].[receivedNextPageToken]) para criarnextRegionalPageTokenpara processar a paginação em chamadas consecutivas.