Calculateur d’offset et de limite de pagination
Convertissez un numéro de page commençant à un en valeurs directement utilisables par une requête fondée sur un offset.
Lancer gratuitement
Indiquez la page demandée, le nombre maximal d’enregistrements par page et le nombre total d’éléments disponibles. Le calculateur renvoie l’offset commençant à zéro, la limite de la requête et le nombre total de pages. Il refuse également les numéros ou tailles de page inférieurs à un, afin d’éviter les requêtes de base de données incorrectes et les commandes de navigation incohérentes.
Transformez une page demandée en paramètres de requête
Les interfaces présentent généralement la pagination avec des numéros compréhensibles, tandis que les bases de données et les API attendent souvent un offset commençant à zéro et une limite. Ce calculateur relie ces deux conventions. Saisissez un numéro de page à partir de un, une taille de page et le nombre d’éléments de la collection complète. L’offset correspond au numéro de page diminué de un, puis multiplié par la taille. La limite est simplement la taille de page. Ainsi, la troisième page d’une collection affichée par groupes de vingt-cinq commence après les cinquante premiers éléments : son offset vaut cinquante et sa limite vingt-cinq. Vous pouvez transmettre ces valeurs à une clause SQL LIMIT et OFFSET classique ou les associer aux paramètres équivalents d’un autre service. Le résultat est déterministe et aucun enregistrement n’est consulté ni récupéré. Seul le calcul nécessaire à la préparation d’une requête paginée est effectué, ce qui convient aux backends, scripts, tests, documentations et diagnostics.
Interprétez le total des pages et les cas limites
Le nombre total de pages est obtenu en divisant le nombre d’éléments par la taille de page, puis en arrondissant vers le haut. Cet arrondi est essentiel, car une dernière page partiellement remplie reste une page. Avec cent un éléments affichés par groupes de vingt-cinq, quatre pages contiennent cent éléments et une cinquième accueille le dernier. Lorsque le nombre d’éléments est nul, le nombre de pages vaut zéro puisqu’aucune page de résultats n’existe. La page demandée n’est pas automatiquement ramenée dans cette plage. Demander la page dix peut donc produire un offset valide même si la collection ne compte que trois pages. Ce choix est volontaire : le calculateur fournit l’arithmétique, tandis que vous définissez la politique de votre application. Vous pouvez comparer la page demandée à total_pages, puis renvoyer une liste vide, rediriger vers la dernière page ou afficher une réponse indiquant une ressource introuvable. Séparer calcul et politique garantit un résultat prévisible pour les bases de données, services REST et interfaces.
Validez les données avant de construire la requête
page et page_size doivent être des entiers sûrs supérieurs ou égaux à un. Zéro ou une valeur négative romprait la convention des pages commençant à un ou produirait une limite dépourvue de sens ; ces cas entraînent donc une erreur de saisie. total_items doit être un entier sûr positif ou nul, car une collection ne peut contenir un nombre négatif ou fractionnaire d’enregistrements. La vérification des entiers sûrs empêche aussi une perte silencieuse de précision dans JavaScript lors de multiplications très importantes. Si l’offset calculé dépasse la plage sûre, la demande est refusée au lieu de renvoyer un nombre inexact. Ces règles peuvent également protéger la frontière de votre API contre des paramètres incorrects avant qu’ils atteignent l’adaptateur de base de données. La capacité n’effectue aucune requête réseau, ne conserve aucune donnée et n’emploie aucune valeur aléatoire ou temporelle. Une même entrée produit toujours la même sortie. Chaque automatisation par API coûte $0.002 ; le navigateur vous permet de vérifier des exemples pendant la conception ou le dépannage.
Cas d’usage
Construire une requête de base de données
Convertissez la page choisie dans une interface en valeurs LIMIT et OFFSET pour une requête SQL.
Afficher des commandes de pagination
Calculez le nombre de pages nécessaire pour activer, désactiver ou nommer les commandes de navigation.
Tester les limites d’une API
Produisez les valeurs attendues pour une collection vide, une dernière page partielle ou une page hors plage.
Questions fréquentes
Le numéro de page commence-t-il à zéro ou à un ?
Il commence à un : la page 1 a un offset de 0 et la page 2 débute après un page_size complet.
Comment total_pages est-il calculé ?
Le calculateur divise total_items par page_size et arrondit vers le haut afin de compter une dernière page partielle.
Que se passe-t-il lorsque total_items vaut zéro ?
total_pages vaut 0, tandis que offset et limit restent calculés depuis la page et la taille demandées.
Puis-je demander une page après total_pages ?
Oui. Le calculateur renvoie l’offset mathématique et votre application décide d’afficher un résultat vide ou de refuser la page.
Quel est le prix d’une requête API ?
Chaque requête API coûte $0.002. Le calcul est également disponible dans le navigateur.
Pour les développeurs — accès API
Tout sur cette page est disponible par programmation. Cette section s'adresse aux équipes qui veulent l'intégrer à leurs systèmes ; les autres peuvent simplement utiliser l'outil ci-dessus.
Endpoint
Authentification par jeton Bearer : un seul POST met la tâche en file d’attente, et le résultat vous parvient par webhook ou lien signé.
Appeler depuis votre stack
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)Exemple de requête
{
"page": 3,
"page_size": 25,
"total_items": 123
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev.pagination_offset_calc",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L’API est asynchrone : chaque appel renvoie un task_id immédiatement, puis vous interrogez l’état à raison d’une requête par seconde.
Tarifs
Le prix est publié, sans tokens ni crédits. Une tâche qui échoue n’est pas facturée.
Erreurs
| HTTP | Code | Signification |
|---|---|---|
401 | unauthorized | Clé API absente ou invalide : vérifiez l’en-tête Authorization. |
402 | insufficient_balance | Solde insuffisant : rechargez votre compte pour lancer cette tâche. |
404 | unknown_type | Type de tâche inconnu : vérifiez le champ type de votre requête. |
429 | rate_limited | Trop de requêtes : ralentissez la cadence, puis réessayez. |