다음 의사코드는 데이터 계보 API를 사용하여 사용 가능한 모든 리전에서 데이터 계보 링크를 가져오는 절차를 설명합니다.
- 다음과 같이 입력을 설정합니다.
linksToFetch
= 5(모든 리전에서 가져올 링크 수)regionalPageToken
= ""(페이지로 나누기에 사용한 마지막으로 수신된 리전 페이지 토큰)- 다음 항목을 생성합니다.
regions
는 팬아웃할 모든 리전의 목록입니다.unreachable
은 연결할 수 없는 리전의 목록입니다.foundLinks
는 발견된 링크의 빈 목록입니다.nextPageToken
및nextRegionalPageToken
은 빈 변수입니다.lastRegion
은 빈 변수입니다.lastRegionLinksCount
는 빈 변수입니다.
regions
를 알파벳순으로 정렬합니다.regionalPageToken
을 파싱합니다.- 비어 있으면 4단계로 이동합니다.
- 비어 있지 않으면 다음 안내를 따릅니다.
- 첫 번째 점에서 분할하여
regionalPageToken
을 두 세그먼트로 파싱합니다. - 파싱된
regionalPageToken
에서 (알파벳순으로 정렬된) 첫 번째 세그먼트 다음의 세그먼트만 가져와 리전을 필터링합니다. - 두 번째 세그먼트를 별도로 저장하여 모든 projects.locations.searchLinks 호출에 사용합니다.
- 첫 번째 점에서 분할하여
regions
목록의 각 리전에서 projects.locations.searchLinks를 동시에 호출합니다.- 모든 요청이 완료될 때까지 기다립니다.
- 성공적인 응답을 필터링하고 실패한 리전 이름을
unreachable
목록에 저장합니다. - 각 응답(알파벳순으로 정렬된 첫 번째 리전부터 시작)마다 다음 안내를 따릅니다.
- 비어 있지 않은 페이지 토큰과 함께 링크가 반환되지 않은 경우에는 다음 안내를 따릅니다.
lastRegion
에 저장소 리전 이름을 저장합니다.- 수신한 pageToken을
nextPageToken
에 저장합니다. - 나머지 응답은 무시합니다.
- 그 외의 경우에는 다음 안내를 따릅니다.
lastRegion
에 저장소 리전 이름을 저장합니다.- 수신한 링크를
foundLinks
에 저장합니다(최대linksToFetch
). - 수신한 pageToken을
nextPageToken
에 저장합니다. - 응답에서 가져온 링크의 수를
lastRegionLinksCount
에 저장합니다. foundLinks
가linksToFetch
보다 작다면 다음 안내를 따릅니다.- 알파벳순으로 정렬된 다음 수신 응답으로 의사코드를 계속 진행합니다.
foundLinks
가linksToFetch
와 같다면 다음 안내를 따릅니다.- 동일한 리전의 projects.locations.searchLinks 엔드포인트에 다른 요청을 전송하되
pageSize
매개변수를lastRegionLinksCount
값으로 설정합니다. - 수신한 pageToken을
nextPageToken
에 저장합니다. - 8단계로 이동합니다.
- 동일한 리전의 projects.locations.searchLinks 엔드포인트에 다른 요청을 전송하되
- 비어 있지 않은 페이지 토큰과 함께 링크가 반환되지 않은 경우에는 다음 안내를 따릅니다.
lastRegion
앞에 nextPageToken을 추가합니다(예: 연속 호출에서 페이지로 나누기를 처리하려면 '[region].[receivedNextPageToken]'으로nextRegionalPageToken
을 생성).