Pagination
NestJS 🟡 MidDefinition
Pattern pour retourner les resultats par pages via offset/limit ou cursor-based. Evite de charger des milliers d'enregistrements en une seule requete.
Analogie
Comme un livre avec des pages : tu lis page par page au lieu de tout le livre d'un coup.
Exemple de code
async findAll(page = 1, limit = 10) {
const [items, total] = await this.repo.findAndCount({
skip: (page - 1) * limit,
take: limit,
});
return { items, total, page, lastPage: Math.ceil(total / limit) };
}
Cas d'usage
Toute API de liste doit etre paginee pour eviter les reponses massives et les timeouts.
Anti-pattern
Retourner tous les enregistrements sans pagination, causant des timeouts avec les grosses tables.