O pseudocódigo a seguir descreve um procedimento que pode ser seguido usando a API Data Lineage para buscar links de linhagem de dados em todas as regiões disponíveis.
- Configuração de entrada:
linksToFetch
= 5 (número de links a serem buscados de todas as regiões)regionalPageToken
= "" (último token de página regional recebido usado para paginação)
- Criar:
- lista de todas as regiões para fan-out chamada
regions
. - lista de regiões inacessíveis chamada
unreachable
. - uma lista vazia de links encontrados chamada
foundLinks
. - uma variável vazia
nextPageToken
enextRegionalPageToken
. - uma variável
lastRegion
vazia. - uma variável
lastRegionLinksCount
vazia.
- lista de todas as regiões para fan-out chamada
- Ordenar
regions
em ordem alfabética. - Analisar
regionalPageToken
- Se estiver vazio, prossiga para a etapa 5.
- Se não estiver vazio,
- Analisar
regionalPageToken
dividindo-o pelo primeiro ponto em dois segmentos - filtrar regiões, considerando apenas as que estão após (em ordem alfabética) o primeiro segmento da
regionalPageToken
analisada. - armazene o segundo segmento para usá-lo em todas as chamadas projects.locations.searchLinks.
- Analisar
- Faça uma chamada para projects.locations.searchLinks
em cada região na lista
regions
em paralelo. - Aguarde a conclusão de todas as solicitações.
- Filtre as respostas bem-sucedidas e armazene os nomes das regiões com falha na lista
unreachable
. - Para cada uma das respostas (começando pela primeira região em ordem alfabética)
- se nenhum link foi retornado com um token de página não vazio
- nome da região da loja em
lastRegion
. - Salvar o pageToken recebido em
nextPageToken
. - ignore as respostas restantes.
- nome da região da loja em
- caso contrário
- nome da região da loja em
lastRegion
. - salvar links recebidos em
foundLinks
(atélinksToFetch
). - Salvar o pageToken recebido em
nextPageToken
. - Armazene o número de links usados da resposta em
lastRegionLinksCount
. - if
foundLinks
is less thanlinksToFetch
- continue o pseudocódigo com a próxima resposta recebida na ordem alfabética.
- if
foundLinks
equalslinksToFetch
- Faça outra solicitação para o endpoint projects.locations.searchLinks
na mesma região, mas defina o parâmetro
pageSize
como o valor delastRegionLinksCount
. - Armazenar o pageToken recebido em
nextPageToken
. - Continue para a etapa 9
- Faça outra solicitação para o endpoint projects.locations.searchLinks
na mesma região, mas defina o parâmetro
- nome da região da loja em
- se nenhum link foi retornado com um token de página não vazio
- Adicione
nextPageToken
com olastRegion
(ou seja,[region].[receivedNextPageToken]
) para criarnextRegionalPageToken
e processar a paginação em chamadas consecutivas.