Skip to main content
Os endpoints que retornam listas entregam os resultados em páginas. Esta página mostra como pedir uma página com page e perPage e como ler o objeto meta da resposta para saber quantas páginas e quantos itens existem. Os filtros que você pode combinar com a paginação estão em Filtros básicos e Busca avançada. As regras desta página valem para as listagens que devolvem o objeto meta. Alguns endpoints paginam de outro jeito:
  • POST /api/management/search-activities, do registro de alterações, usa offset e devolve 10 registros por vez.
  • GET /api/management/marketplace/templates usa per_page, com padrão de 15 itens, e devolve os dados da paginação em pagination.
  • Os assistentes de etapa trazem os campos de paginação na raiz da resposta, como mostra a estrutura da resposta paginada.

Parâmetros de paginação

Dois parâmetros controlam a paginação. Nas listagens GET, envie os parâmetros na URL. Nas buscas POST, como a busca avançada, você também pode enviá-los no corpo da requisição.
integer
default:"1"
Número da página. Aceita inteiros a partir de 1. Se o valor estiver ausente ou for inválido, a API usa 1.
integer
default:"30"
Quantidade de itens por página, de 1 a 100. Se o valor estiver ausente, a API usa 30. Para valores acima de 100, a API usa 100.

Estrutura da resposta paginada

A resposta paginada traz a lista de itens e um objeto meta com os dados da paginação. O nome da lista depende do endpoint: projects na listagem de projetos, goals na listagem de metas, e assim por diante.
O exemplo mostra só dois projetos, com poucos campos. Uma resposta real traz os 30 projetos da página, com todos os campos.

Campos do objeto meta

O objeto meta descreve a página retornada e o total da listagem.
integer
Página retornada. Começa em 1.
integer
Posição do primeiro item da página na listagem completa, contando a partir de 1.
integer
Posição do último item da página na listagem completa, contando a partir de 1.
integer
Número da última página, calculado a partir de total e per_page.
integer
Quantidade de itens por página. Reflete o perPage enviado na requisição ou o padrão aplicado (30). O máximo é 100.
integer
Total de itens da listagem, já com os filtros aplicados.
Três endpoints de assistentes de etapa são exceção. Neles, os campos de paginação (current_page, per_page, total e os demais) vêm na raiz da resposta, ao lado de data, e não dentro de meta: GET /api/management/step-assistants, GET /api/management/steps/{step}/assistants e GET /api/management/steps/{step}/assistants/execution-logs.

Exemplos

Os exemplos usam a listagem de projetos e a listagem de metas, que aceitam page e perPage na URL.

Pedir uma página pela URL

Esta requisição completa, com autenticação, pede a segunda página da listagem de projetos com 50 itens por página:
As variações abaixo mostram o efeito de cada parâmetro.
Retorna a primeira página com 30 itens (valores padrão).

Paginar uma busca avançada

Na busca avançada, os filtros vão no array filters do corpo de uma requisição POST. Envie page e perPage no mesmo corpo:
Se você enviar page e perPage no corpo de uma requisição POST e também na URL, a API usa os valores do corpo. A estrutura dos filtros está em Busca avançada.

Validação dos parâmetros

A API corrige os valores de page e perPage fora do intervalo em vez de devolver erro: A resposta continua válida, e o objeto meta mostra os valores que a API usou de fato.

Percorrer todas as páginas

Para ler uma listagem inteira, peça uma página por vez e use o meta de cada resposta para decidir o próximo passo:
  • Avance enquanto houver páginas. Aumente page até current_page ser igual a last_page.
  • Leia o tamanho da página no meta. Use o per_page da resposta, não o valor que você enviou, porque a API pode ter ajustado o valor.
  • Guarde em cache as páginas mais consultadas, se a sua integração lê as mesmas páginas muitas vezes. Isso reduz o número de requisições.

Páginas relacionadas

Estas páginas complementam a paginação: