Calculadora de offset e limite de paginação
Converta um número de página iniciado em um nos valores exatos exigidos por uma consulta baseada em offset.
Executar grátis
Informe a página solicitada, a quantidade máxima de registros em cada página e o total de itens disponíveis. A calculadora retorna o offset iniciado em zero, o limite da consulta e o total de páginas. Ela também rejeita números ou tamanhos de página menores que um, ajudando você a evitar consultas inválidas ao banco de dados e controles de navegação inconsistentes.
Transforme uma solicitação de página em parâmetros de consulta
Interfaces normalmente apresentam a paginação com números de página fáceis de entender, enquanto bancos de dados e APIs costumam exigir um offset iniciado em zero e um limite. Esta calculadora conecta as duas convenções. Informe um número de página a partir de um, um tamanho de página e o total de itens da coleção completa. O offset é calculado subtraindo um do número da página e multiplicando o resultado pelo tamanho. O limite é o próprio tamanho da página. Por exemplo, a terceira página de uma coleção exibida em grupos de vinte e cinco começa depois dos primeiros cinquenta itens; portanto, seu offset é cinquenta e seu limite é vinte e cinco. Você pode enviar esses valores diretamente para uma cláusula SQL LIMIT e OFFSET comum ou associá-los a parâmetros equivalentes de outro serviço. O resultado é determinístico e não examina nem busca os registros. Ele realiza somente a aritmética necessária para preparar uma solicitação paginada, sendo útil em backends, scripts, testes, documentação e diagnósticos.
Entenda o total de páginas e os casos de fronteira
O total de páginas é obtido dividindo a quantidade total de itens pelo tamanho da página e arredondando para cima. Esse arredondamento é importante porque uma última página parcialmente preenchida ainda conta como página. Se cento e um itens forem exibidos em grupos de vinte e cinco, quatro páginas comportam cem itens e uma quinta contém o item restante. Quando o total de itens é zero, o total de páginas também é zero, pois não existe uma página de resultados. A página solicitada não é ajustada automaticamente a esse total. Assim, uma solicitação da página dez pode produzir um offset válido mesmo que a coleção tenha apenas três páginas. Esse comportamento é proposital: a calculadora informa a aritmética da paginação e deixa a política para quem a utiliza. Sua aplicação pode comparar a página pedida com total_pages e retornar uma lista vazia, redirecionar para a última página ou exibir uma resposta de recurso não encontrado. Separar cálculo e política mantém a saída previsível em bancos de dados, serviços REST e interfaces.
Valide as entradas antes de montar uma consulta
page e page_size devem ser inteiros seguros maiores ou iguais a um. Zero ou um valor negativo quebraria a convenção de páginas iniciadas em um ou criaria um limite sem significado; por isso, qualquer uma dessas condições gera um erro de entrada inválida. total_items deve ser um inteiro seguro maior ou igual a zero, pois uma coleção não pode ter uma quantidade negativa ou fracionária de registros. A verificação de inteiros seguros também evita perda silenciosa de precisão no JavaScript ao multiplicar valores muito grandes. Se o offset calculado ultrapassar o intervalo seguro, a solicitação será rejeitada em vez de retornar um número incorreto. Essas regras também são úteis fora da calculadora: aplicar a mesma validação na entrada de uma API impede que parâmetros malformados cheguem ao adaptador do banco. A capacidade não faz solicitações de rede, não armazena dados e não usa valores aleatórios ou dependentes do tempo. A mesma entrada sempre gera a mesma saída. Cada solicitação automatizada pela API custa US$ 0,002; você pode usar o navegador para conferir exemplos enquanto projeta ou depura a paginação.
Casos de uso
Montar uma consulta ao banco
Converta uma página escolhida na interface em valores LIMIT e OFFSET para uma consulta SQL.
Exibir controles de paginação
Calcule o total de páginas necessário para ativar, desativar ou nomear controles de navegação.
Testar limites de uma API
Gere valores esperados para coleções vazias, páginas finais incompletas e páginas além do resultado.
Perguntas frequentes
O número da página começa em zero ou em um?
Começa em um: a página 1 tem offset 0, e a página 2 começa depois de um page_size completo.
Como total_pages é calculado?
A calculadora divide total_items por page_size e arredonda para cima, contando a última página mesmo quando incompleta.
O que acontece quando total_items é zero?
total_pages será 0, enquanto offset e limit ainda serão calculados com a página e o tamanho informados.
Posso solicitar uma página posterior a total_pages?
Sim. A calculadora retorna o offset matemático, e sua aplicação decide se mostra um resultado vazio ou rejeita a página.
Quanto custa uma solicitação pela API?
Cada solicitação pela API custa US$ 0,002. O cálculo também pode ser feito no navegador.
Para desenvolvedores — acesso via API
Tudo nesta página está disponível via API. Esta seção é para equipes que querem integrar a ferramenta aos próprios sistemas; quem não precisa disso pode simplesmente usar a ferramenta acima.
Endpoint
Autenticação por token Bearer. Um único POST coloca a tarefa na fila; o resultado chega por webhook ou link assinado.
Chame do seu código
curl -X POST https://api.kit.forhosting.com/dev/pagination-offset-calc \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"page":3,"page_size":25,"total_items":123}'const res = await fetch("https://api.kit.forhosting.com/dev/pagination-offset-calc", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"page": 3,
"page_size": 25,
"total_items": 123
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/dev/pagination-offset-calc",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"page": 3,
"page_size": 25,
"total_items": 123
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/dev/pagination-offset-calc", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"page":3,"page_size":25,"total_items":123}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"page":3,"page_size":25,"total_items":123}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/dev/pagination-offset-calc", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemplo de requisição
{
"page": 3,
"page_size": 25,
"total_items": 123
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev.pagination_offset_calc",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}A API é assíncrona: cada chamada devolve um task_id na hora. Se preferir polling, consulte o status a até 1 requisição por segundo.
Preço
Preço publicado, sem tokens nem créditos escondidos. Tarefa que falha não é cobrada.
Erros
| HTTP | Código | O que significa |
|---|---|---|
401 | unauthorized | Token ausente ou inválido. Confira o header Authorization. |
402 | insufficient_balance | Saldo insuficiente para esta tarefa. Faça uma recarga e tente de novo. |
404 | unknown_type | Esse tipo de tarefa não existe. Confira o campo type no catálogo. |
429 | rate_limited | Muitas requisições em pouco tempo. Espere um instante e tente de novo. |