Parcourez les réponses paginées avec SBListResponse dans le SDK JavaScript Smartbills : paramètres, tri, pagination manuelle, itérateur et générateur async.
Tous les points d’accès de type liste dans l’API Smartbills retournent des résultats paginés. Le SDK fournit un wrapper SBListResponse<T> cohérent qui inclut à la fois les données et les métadonnées de pagination.
interface SBListResponse<T> { data: T[]; // Tableau des éléments de la page courante pagination: SBPagination; // Metadonnées de pagination}interface SBPagination { count: number; // Nombre total d'éléments sur toutes les pages limit: number; // Nombre d'éléments par page currentPage: number; // Numéro de page actuel (base 1) pageCount: number; // Nombre total de pages filters?: Record<string, unknown>; // Filtres appliqués sorts?: Record<string, string>; // Critères de tri appliqués}
Pour un traitement économe en mémoire des grands ensembles de données :
async function* paginerDépenses(params?: Partial<ExpenseListRequest>) { let page = 1; let totalPages = 1; do { const response = await client.expenses.listBusiness({ ...params, page, limit: params?.limit ?? 100, }); for (const expense of response.data) { yield expense; } totalPages = response.pagination.pageCount; page++; } while (page <= totalPages);}// Traiter les dépenses une par une sans tout charger en memoirefor await (const expense of paginerDépenses({ sortBy: 'amount' })) { console.log(expense.id, expense.amount);}