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
alterado_aposAo 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
alterado_apos- Faça a primeira requisição GET com o parâmetro
alterado_apos(ex: ?alterado_apos=2000-01-01T00:00:00). - Salve todos os registros retornados dessa requisição.
- Atualize o valor de
alterado_aposusando o valor do campoultima_alteracaodo ú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.
- Faça uma nova requisição GET com o valor atualizado.
- Repita o processo até que o parâmetro
MEUSPEDIDOS_LIMITOU_REGISTROSnã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.
