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.
El SDK proporciona utilidades de paginación genéricas que puedes usar con cualquier endpoint que devuelva respuestas paginadas. Los métodos devuelven respuestas en bruto que luego puedes envolver con un paginador.
import { Client, UserPaginator, PaginatedResponse, Schemas } from '@xdevplatform/xdk';
const client: Client = new Client({ bearerToken: 'your-bearer-token' });
// Envuelve cualquier endpoint de lista con el tipo adecuado
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(); // primera página
while (!followers.done) {
await followers.fetchNext(); // páginas siguientes
}
const userCount: number = followers.users.length; // todos los usuarios recuperados
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); // acceso con tipado completo
}
Siguiente página como una nueva instancia
import { UserPaginator } from '@xdevplatform/xdk';
await followers.fetchNext();
if (!followers.done) {
const page2: UserPaginator = await followers.next(); // paginador independiente que comienza en la siguiente página
await page2.fetchNext();
console.log(page2.users.length); // elementos de la segunda página
}
Manejo de errores y límites de tasa
import { UserPaginator, Schemas } from '@xdevplatform/xdk';
try {
for await (const item of followers) {
const user: Schemas.User = item;
// procesar usuario...
}
} catch (err: unknown) {
if (followers.rateLimited) {
console.error('Se alcanzó el límite de tasa, es necesario esperar antes de reintentar');
// esperar / volver a intentarlo más tarde
} else {
console.error('Error de paginación:', err);
throw err;
}
}