Paginação
Requisição
Vários endpoints de listagem de entidades possuem paginação, que é controlada através dos seguintes atributos pageNumber e pageSize, enviados no corpo da requisição.
{
"pageNumber": 1,
"pageSize": 50
}Parâmetros
pageNumber: número da página que deseja consultar.pageSize: quantidade de registros retornados por página.
O valor máximo permitido para
pageSizeé 100.
Exemplo
Para consultar a primeira página contendo até 50 registros:
{
"pageNumber": 1,
"pageSize": 50
}Para consultar a segunda página:
{
"pageNumber": 2,
"pageSize": 50
}Importante
Mantenha o mesmo valor de pageSize durante toda a navegação das páginas.
Alterar o pageSize entre requisições pode resultar em registros duplicados ou ausentes durante a iteração.
Resposta
Os endpoints paginados retornam uma estrutura semelhante à seguinte:
{
"pageNumber": 1,
"pageSize": 50,
"totalPages": 5,
"totalItems": 250,
"hasMorePages": true,
"items": [
{}
]
}Campos retornados
pageNumber: página retornada.pageSize: quantidade de registros retornados na página.totalPages: total de páginas disponíveis para a consulta.totalItems: quantidade total de registros encontrados.hasMorePages: indica se há mais páginas a serem consultadas, ou seja, sepageNumberé menor quetotalPages;items: array de entidades retornadas, cujo tamanho será menor ou igual apageSize.
Exemplo de navegação
Supondo o seguinte cenário:
{
"totalItems": 250,
"pageSize": 50,
"totalPages": 5
}| Página | Registros |
|---|---|
| 1 | 1 a 50 |
| 2 | 51 a 100 |
| 3 | 101 a 150 |
| 4 | 151 a 200 |
| 5 | 201 a 250 |
Ao chegar na última página:
{
"hasMorePages": false
}Não será necessário realizar novas consultas.
Exemplo em cURL
curl --request POST \
--url https://api.wts.chat/crm/contact/list \
--header 'Authorization: Bearer SEU_TOKEN' \
--header 'Content-Type: application/json' \
--data '{
"pageNumber": 1,
"pageSize": 50
}'Exemplo em JavaScript
const response = await fetch(
"https://api.wts.chat/crm/contact/list",
{
method: "POST",
headers: {
"Authorization": "Bearer SEU_TOKEN",
"Content-Type": "application/json"
},
body: JSON.stringify({
pageNumber: 1,
pageSize: 50
})
}
);
const data = await response.json();
console.log(data);Exemplo para N8N
Ao utilizar um nó HTTP Request:
Headers
{
"Authorization": "Bearer SEU_TOKEN"
}Body
{
"pageNumber": 1,
"pageSize": 50
}Utilize o campo hasMorePages para criar loops automáticos e percorrer todas as páginas.
Boas práticas
- Utilize sempre um
pageSizeconsistente durante a navegação. - Evite utilizar o valor máximo quando não houver necessidade.
- Utilize
hasMorePagespara identificar quando interromper a consulta. - Para grandes volumes de dados, processe os registros em lotes.
- Evite consultas excessivas em sequência para não consumir recursos desnecessariamente.
Dúvidas frequentes
Qual o valor máximo de pageSize?
pageSize?O limite recomendado é de 100 registros por página.
Posso alterar o pageSize durante a navegação?
pageSize durante a navegação?Não é recomendado. Isso pode gerar inconsistências na paginação.
Como saber se existem mais páginas?
Verifique o campo:
{
"hasMorePages": true
}Quando retornar false, não existem mais páginas disponíveis.