ForHosting KIT · 開発者向けツール

ページネーションのオフセットとリミットを計算

1から始まるページ番号を、オフセット方式のクエリに必要な正確な値へ変換できます。要求するページ、1ページに含める最大レコード数、利用可能な総項目数をご指定ください。0から始まるオフセット、クエリのリミット、総ページ数を返します。ページ番号またはページサイズが1未満の場合はエラーになるため、不正なデータベースクエリや一貫性のないナビゲーション制御を、アプリケーションコードに到達する前に防げます。

● Beta無料・ブラウザ内で実行
ご利用方法 ウェブAPIメールTelegramアプリ 近日

ページ指定をクエリパラメーターへ変換します

画面上のページネーションでは、人に分かりやすいページ番号が一般的ですが、データベースや API では、0から始まるオフセットとリミットが求められることがあります。この計算機は、両者の規則を結び付けます。1から始まるページ番号、ページサイズ、コレクション全体の総項目数をご入力ください。オフセットは、ページ番号から1を引き、その値にページサイズを掛けて求めます。リミットにはページサイズがそのまま使われます。たとえば、25件ずつ表示するコレクションの3ページ目は、最初の50件の後から始まるため、オフセットは50、リミットは25です。これらの値は、一般的な SQL の LIMIT と OFFSET 句へ直接渡すことも、別サービスの同等パラメーターへ割り当てることもできます。結果は常に決定的であり、実際のレコードを参照したり取得したりしません。ページ付きリクエストを準備するための計算だけを行うため、バックエンド、スクリプト、テスト、文書作成、障害調査にご活用いただけます。

総ページ数と境界条件をご確認ください

総ページ数は、総項目数をページサイズで割り、その結果を切り上げて求めます。最後のページが一部しか埋まっていなくても1ページとして扱うため、切り上げが必要です。101件を25件ずつ表示する場合、4ページに100件が入り、残りの1件には5ページ目が必要です。総項目数が0なら、表示する結果ページが存在しないため、総ページ数も0になります。要求したページは、算出した総ページ数の範囲へ自動調整されません。そのため、コレクションが3ページしかなくても、10ページ目の指定から有効なオフセットを計算できます。これは意図した動作です。本機能はページネーションの算術結果を返し、範囲外ページの扱いは呼び出し側へ委ねます。要求ページと total_pages を比較し、空の結果を返す、最終ページへ移動する、または未検出の応答を表示するなど、用途に応じてご判断いただけます。計算と運用方針を分離することで、データベース、REST サービス、画面のいずれでも予測可能な結果になります。

クエリを作る前に入力をご検証ください

page と page_size には、1以上の安全な整数をご指定ください。0または負数は、1から始まるページ規則に反するか、意味のないリミットを作るため、無効入力エラーになります。total_items には0以上の安全な整数が必要です。コレクションのレコード数を負数や小数にはできません。安全な整数かどうかの確認により、JavaScript で非常に大きな値を乗算した際に、精度が気付かないまま失われることも防ぎます。計算されたオフセットが安全な整数範囲を超える場合、不正確な数値を返さずにリクエストを拒否します。同じ検証を API の境界で行えば、不正なパラメーターがデータベースアダプターへ届くのを防げます。本機能はネットワークへ接続せず、データを保存せず、乱数や時刻依存値も使いません。同じ入力には常に同じ出力を返します。API による自動処理は1回 $0.002 で、設計や問題調査の際はブラウザー上で例をご確認いただけます。

データベースクエリを作成

画面で選択されたページを、SQL クエリ用の LIMIT 値と OFFSET 値へ変換します。

ページ移動コントロールを表示

ナビゲーションの有効化、無効化、ラベル表示に必要な総ページ数を計算します。

API の境界条件をテスト

空のコレクション、項目数の少ない最終ページ、結果範囲外のページについて期待値を生成します。

ページ番号は0と1のどちらから始まりますか?

1から始まります。ページ1の offset は0で、ページ2は1ページ分の page_size の後から始まります。

total_pages はどのように計算されますか?

total_items を page_size で割って切り上げるため、一部だけ埋まった最終ページも数えられます。

total_items が0の場合はどうなりますか?

total_pages は0です。一方、offset と limit は指定されたページとページサイズから引き続き計算されます。

total_pages より後のページを指定できますか?

はい。数学的な offset を返し、空の結果を表示するかページを拒否するかは、お客様のアプリケーションで決定できます。

API リクエストの料金はいくらですか?

API リクエスト1回につき $0.002 です。ブラウザーでも計算をご利用いただけます。

このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。

POSThttps://api.kit.forhosting.com/dev/pagination-offset-calc

Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。

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}'
{
  "page": 3,
  "page_size": 25,
  "total_items": 123
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "dev.pagination_offset_calc",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。

1リクエストあたり$0.002

単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。

HTTPコード意味
401unauthorizedAPIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。
402insufficient_balance残高が不足しています。チャージ後に再度お試しください。
404unknown_type指定されたタスクタイプは存在しません。タイプ名を確認してください。
429rate_limitedリクエストが多すぎます。しばらく待ってから再度お試しください。

KITの完全なドキュメントを見る →