목록 페이지 매김과 필터링하기
목록 페이지 매김과 필터링하기
페이지 경계에서 결과를 잃지 않고 리소스를 나열해 봐요. SDK 컬렉션 반복자가 각 페이지를 요청하고, collect는 완전한 결과를 메모리에 구체화해요.
출처: 문서
본문
인증된 클라이언트를 사용하세요. 계정이 크다면 모두 수집하는 대신 도착하는 대로 반복자 항목을 처리하세요.
모든 샌드박스 순회
페이지 크기를 설정하고 샌드박스 컬렉션을 반복해요. 예시는 편의를 위해 결과를 수집해요. 페이지 크기는 각 요청을 제어하지, 반환되는 리소스의 총 수를 제어하지는 않아요.
한 페이지 메서드를 직접 사용할 때는 반환된 다음 페이지 토큰을 변경 없이 전달하고 필터, 정렬, 페이지 크기를 안정적으로 유지하세요. 페이지에 요청한 것보다 적은 항목이 있을 때가 아니라 다음 토큰이 반환되지 않을 때 멈추세요.
핵심 코드:
return client.all({ pageSize }).collect();
완전한 TypeScript 예시: pagination/walk.ts
import type { Sandboxes } from '@docker/sandboxes';
export async function walkSandboxes(client: Sandboxes, pageSize: number) {
return client.all({ pageSize }).collect();
}
결과 필터와 정렬
컬렉션이 지원하는 필터와 정렬을 전달하세요. 예시는 이미지를 사용해요. status=completed 같은 필터를 선택해 준비된 이미지를 고르세요.
필터는 서비스가 해석하는 문자열이에요. 언어 객체의 속성 이름이 아니라 그 목록 메서드에 문서화된 필드 이름과 연산자를 사용하세요. 잘못된 필터는 조용히 제거하고 필터 없는 목록으로 재시도하기보다 고쳐야 해요.
핵심 코드:
return client.images.all({ filter, orderBy }).collect();
완전한 TypeScript 예시: pagination/filter.ts
import type { Sandboxes } from '@docker/sandboxes';
export async function filterImages(
client: Sandboxes,
filter: string,
orderBy: string,
) {
return client.images.all({ filter, orderBy }).collect();
}