Paginação

Se você vai implementar qualquer requisição com o método GET passando o parâmetro alterado_apos, é necessário implementar uma lógica que percorra todas as páginas da resposta, utilizando os headers de controle (como MEUSPEDIDOS_QTDE_TOTAL_REGISTROS) e repetindo requisições até obter todos os registros.

Atenção à paginação ao usar alterado_apos

Ao implementar requisições GET com o parâmetro alterado_apos, é obrigatório tratar a paginação da resposta.

No ambiente de sandbox, a paginação geralmente não se manifesta — a menos que você realize um teste de carga. Porém, em produção, é comum que os dados estejam distribuídos em múltiplas páginas.

⚠️

Atenção: Se sua aplicação não tratar corretamente a paginação, há risco de perda de dados, especialmente os que estão nas páginas finais da resposta da API.

Garanta que sua lógica percorra todas as páginas para que nenhum dado seja perdido. 😉

Como fazer novas requisições usando o alterado_apos

  1. Faça a primeira requisição GET com o parâmetro alterado_apos (ex: ?alterado_apos=2000-01-01T00:00:00).
  2. Salve todos os registros retornados dessa requisição.
  3. Atualize o valor de alterado_apos usando o valor do campo ultima_alteracao do último registro recebido no JSON. Por exemplo, se o último registro retornado for:
{
  // restante dos registros
  "ultima_alteracao": "2024-04-10T15:45:00"
  // restante deste registro
}

Sua próxima requisição deve usar esse valor: ?alterado_apos=2024-04-10T15:45:00.

  1. Faça uma nova requisição GET com o valor atualizado.
  2. Repita o processo até que o parâmetro MEUSPEDIDOS_LIMITOU_REGISTROS não seja retornado no Header.

Fique de olho nos headers

A resposta da API pode incluir alguns headers importantes que indicam que há mais dados para buscar:

  • MEUSPEDIDOS_LIMITOU_REGISTROS: Só aparece quando há uma limitação, sendo exibido com o valor igual a 1.
  • MEUSPEDIDOS_QTDE_TOTAL_REGISTROS: quantidade total de registros disponíveis.
  • MEUSPEDIDOS_REQUISICOES_EXTRAS: quantas requisições adicionais serão necessárias.

Esses headers são sinais de que você precisa continuar fazendo requisições até que todos os registros tenham sido coletados.

🧠

Explicando pra dev entender:

  • MEUSPEDIDOS_LIMITOU_REGISTROS = 1 → ainda há mais dados a serem buscados.
  • Se esse header não aparecer, ou vier com outro valor → acabou a paginação.
⚠️

Atenção: Em produção será retornado 500 registros por página, entretanto no ambiente sandbox essa quantidade é reduzida.