Buscar links de linhagem de várias regiões

O pseudocódigo a seguir descreve um procedimento que pode ser seguido usando a API de linhagem de dados para buscar links de linhagem de dados de todas as regiões disponíveis.

  1. Configuração de entrada:
  2. linksToFetch = 5 (número de links a serem buscados de todas as regiões)
  3. regionalPageToken = "" (último token de página regional recebido para paginação)
  4. Crie:
    1. lista de todas as regiões a serem distribuídas em regions.
    2. lista de regiões inacessíveis chamadas unreachable.
    3. Uma lista vazia de links encontrados chamada foundLinks.
    4. uma variável vazia nextPageToken e nextRegionalPageToken
    5. uma variável vazia lastRegion
    6. uma variável vazia lastRegionLinksCount
  5. Classifique regions em ordem alfabética.
  6. Analisar regionalPageToken
    1. Se ela estiver vazia, prossiga para a etapa 4.
    2. Se não estiver,
      1. analise regionalPageToken dividindo o primeiro ponto em dois segmentos
      2. filtre as regiões escolhendo apenas as que estão depois (em ordem alfabética) do primeiro segmento da regionalPageToken analisada.
      3. armazenar o segundo segmento para usá-lo em todas as chamadas de projects.locations.searchLinks.
  7. Faça uma chamada para projects.locations.searchLinks em cada região na lista regions em paralelo.
  8. Aguarde a conclusão de todas as solicitações.
  9. Filtre as respostas bem-sucedidas e armazene os nomes das regiões com falha na lista unreachable.
  10. Para cada resposta (começando com a primeira região em ordem alfabética)
    1. se nenhum link for retornado com um token de página não vazio.
      1. armazenar o nome da região em lastRegion.
      2. salvar o token de página recebido em nextPageToken.
      3. ignore as respostas restantes.
    2. Caso contrário,
      1. armazenar o nome da região em lastRegion.
      2. salvar links recebidos em foundLinks (até linksToFetch).
      3. salvar o token de página recebido em nextPageToken.
      4. armazenar o número de links retirados da resposta em lastRegionLinksCount.
      5. se foundLinks for menor que linksToFetch
        1. Continuar o pseudocódigo com a próxima resposta recebida em ordem alfabética.
      6. se foundLinks for igual a linksToFetch
        1. faça outra solicitação para o endpoint projects.locations.searchLinks na mesma região, mas defina o parâmetro pageSize como o valor de lastRegionLinksCount.
        2. loja recebeu o token de página em nextPageToken
        3. ir para a etapa 8
  11. Inclua o valor de nextPageToken com o lastRegion (por exemplo, "[region].[receivedNextPageToken]") para criar nextRegionalPageToken para lidar com a paginação em chamadas consecutivas.