Documentation Index
Fetch the complete documentation index at: https://generaltranslation.mintlify.app/llms.txt
Use this file to discover all available pages before exploring further.
SDK는 페이지네이션 응답을 반환하는 모든 엔드포인트에서 사용할 수 있는 범용 페이지네이터 유틸리티를 제공합니다. 메서드는 일반 응답을 반환하며, 이를 페이지네이터로 감싸서 사용합니다.
import { Client, UserPaginator, PaginatedResponse, Schemas } from '@xdevplatform/xdk';
const client: Client = new Client({ bearerToken: 'your-bearer-token' });
// 모든 리스트 엔드포인트를 적절한 타입으로 래핑합니다
const followers: UserPaginator = new UserPaginator(
async (token?: string): Promise<PaginatedResponse<Schemas.User>> => {
const res = await client.users.getFollowers('<userId>', {
maxResults: 100,
paginationToken: token,
userFields: ['id','name','username'],
});
return {
data: res.data ?? [],
meta: res.meta,
includes: res.includes,
errors: res.errors
};
}
);
import { UserPaginator, Schemas } from '@xdevplatform/xdk';
await followers.fetchNext(); // 첫 번째 페이지
while (!followers.done) {
await followers.fetchNext(); // 이후 페이지
}
const userCount: number = followers.users.length; // 가져온 모든 사용자 수
const firstUser: Schemas.User | undefined = followers.users[0];
const nextToken: string | undefined = followers.meta?.nextToken;
import { Schemas } from '@xdevplatform/xdk';
for await (const user of followers) {
const typedUser: Schemas.User = user;
console.log(typedUser.username); // 완전히 타입이 지정된 접근
}
import { UserPaginator } from '@xdevplatform/xdk';
await followers.fetchNext();
if (!followers.done) {
const page2: UserPaginator = await followers.next(); // 다음 페이지에서 시작하는 독립적인 페이지네이터 인스턴스
await page2.fetchNext();
console.log(page2.users.length); // 두 번째 페이지의 항목
}
import { UserPaginator, Schemas } from '@xdevplatform/xdk';
try {
for await (const item of followers) {
const user: Schemas.User = item;
// 사용자 처리...
}
} catch (err: unknown) {
if (followers.rateLimited) {
console.error('Rate limited, backoff required');
// 백오프 / 나중에 다시 시도
} else {
console.error('Pagination error:', err);
throw err;
}
}