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.
Le SDK fournit des outils de pagination génériques que vous pouvez utiliser avec n’importe quel endpoint qui renvoie des réponses paginées. Les méthodes renvoient des réponses brutes ; vous les enveloppez dans un paginateur.
import { Client, UserPaginator, PaginatedResponse, Schemas } from '@xdevplatform/xdk';
const client: Client = new Client({ bearerToken: 'your-bearer-token' });
// Encapsulez n'importe quel endpoint de liste avec un typage approprié
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(); // première page
while (!followers.done) {
await followers.fetchNext(); // pages suivantes
}
const userCount: number = followers.users.length; // tous les utilisateurs récupérés
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); // accès entièrement typé
}
Page suivante en tant que nouvelle instance
import { UserPaginator } from '@xdevplatform/xdk';
await followers.fetchNext();
if (!followers.done) {
const page2: UserPaginator = await followers.next(); // paginator indépendant commençant à la page suivante
await page2.fetchNext();
console.log(page2.users.length); // éléments de la deuxième page
}
Gestion des erreurs et limites de taux
import { UserPaginator, Schemas } from '@xdevplatform/xdk';
try {
for await (const item of followers) {
const user: Schemas.User = item;
// traiter l'utilisateur...
}
} catch (err: unknown) {
if (followers.rateLimited) {
console.error('Limite de taux atteinte, temporisation requise');
// temporisation / nouvelle tentative ultérieure
} else {
console.error('Erreur de pagination :', err);
throw err;
}
}