मुख्य सामग्री पर जाएं
SDK सामान्य paginator यूटिलिटीज़ प्रदान करता है, जिनका उपयोग आप किसी भी ऐसे endpoint के साथ कर सकते हैं जो paginated response लौटाता है। मेथड साधारण response लौटाती हैं; आप उन्हें paginator में रैप करते हैं।

बुनियादी पेजिनेशन

quick-start.ts
import { Client, UserPaginator, PaginatedResponse, Schemas } from '@xdevplatform/xdk';

const client: Client = new Client({ bearerToken: 'your-bearer-token' });

// किसी भी सूची endpoint को सही typing के साथ रैप करें
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;

Async iteration

import { Schemas } from '@xdevplatform/xdk';

for await (const user of followers) {
  const typedUser: Schemas.User = user;
  console.log(typedUser.username);  // पूरी तरह typed access
}

नए instance के रूप में अगला पेज

import { UserPaginator } from '@xdevplatform/xdk';

await followers.fetchNext();
if (!followers.done) {
  const page2: UserPaginator = await followers.next(); // अगले पेज से शुरू होने वाला स्वतंत्र paginator
  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');
    // backoff करें / बाद में फिर से प्रयास करें
  } else {
    console.error('Pagination error:', err);
    throw err;
  }
}
JavaScript/TypeScript XDK का उपयोग करने वाले विस्तृत कोड उदाहरणों के लिए, हमारे code samples GitHub repo को देखें।