> ## Documentation Index
> Fetch the complete documentation index at: https://developer.box.com/llms.txt
> Use this file to discover all available pages before exploring further.

# オフセットベースのページネーション

export const MultiRelatedLinks = ({sections = []}) => {
  if (!sections || sections.length === 0) {
    return null;
  }
  return <div className="space-y-8">
      {sections.map((section, index) => <RelatedLinks key={index} title={section.title} items={section.items} />)}
    </div>;
};

export const RelatedLinks = ({title, items = []}) => {
  const getBadgeClass = badge => {
    if (!badge) return "badge-default";
    const badgeType = badge.toLowerCase().replace(/\s+/g, "-");
    return `badge-${badge === "ガイド" ? "guide" : badgeType}`;
  };
  if (!items || items.length === 0) {
    return null;
  }
  return <div className="my-8">
      {}
      <h3 className="text-sm font-bold uppercase tracking-wider mb-4">{title}</h3>

      {}
      <div className="flex flex-col gap-3">
        {items.map((item, index) => <a key={index} href={item.href} className="py-2 px-3 rounded related_link hover:bg-[#f2f2f2] dark:hover:bg-[#111827] flex items-center gap-3 group no-underline hover:no-underline border-b-0">
            {}
            <span className={`px-2 py-1 rounded-full text-xs font-semibold uppercase tracking-wide flex-shrink-0 ${getBadgeClass(item.badge)}`}>
              {item.badge}
            </span>

            {}
            <span className="text-base">{item.label}</span>
          </a>)}
      </div>
    </div>;
};

export const Link = ({href, children, className, ...props}) => {
  const localizedHref = localizeLink(href);
  return <a href={localizedHref} className={className} {...props}>
      {children}
    </a>;
};

オフセットベースのページ割りを使用するAPIは、`offset`および`limit`クエリパラメータを使用してコレクション内の項目のページ割りを行います。

オフセットベースのページネーションは、項目のリストがあらかじめ決められた固定長の場合によく使用されます。

## ページング

コレクション内のエントリの最初のページを取得するには、APIを`offset`パラメータを指定せずに呼び出すか、`offset`を`0`に設定して呼び出す必要があります。`limit`フィールドは省略可能です。

```sh theme={null}
curl https://api.box.com/2.0/folders/0/items?offset=0&limit=100 \
    -H "authorization: Bearer ACCESS_TOKEN"
```

エントリの次のページを取得するには、以前の`offset`値と以前の結果で返された制限の合計 (`previous_offset + previous_limit`) と等しい`offset`パラメータを指定して、APIを呼び出す必要があります。

```sh theme={null}
curl https://api.box.com/2.0/folders/0/items?offset=100&limit=100 \
    -H "authorization: Bearer ACCESS_TOKEN"
```

<Note>
  `offset`は、レスポンス配列内のエントリのサイズではなく、以前の`limit`分だけ加算されますので注意してください。これは制限を下回る可能性があるためです。一般的には、レスポンスオブジェクトの`limit`の値を使用して`offset`値を加算することをお勧めします。
</Note>

次の`offset`値がレスポンスオブジェクト内の`total_count`値を超えている場合、項目の最終ページはリクエスト済みです。この時点では、これ以上取得する項目がありません。

## オフセットと制限

以下のクエリパラメータは、コレクションのページネーションに使用されます。

| クエリパラメータ | 型       | デフォルト      |                                                            |
| -------- | ------- | ---------- | ---------------------------------------------------------- |
| `offset` | Integer | `0`        | コレクションで最初に返される項目の (ゼロベースの) オフセット。ゼロベースのオフセットでは、`0`は適切な値です。 |
| `limit`  | Integer | APIによって異なる | 返される最大エントリ数。値が最大値を超える場合は、最大値が使用されます。                       |

<Note>
  オフセットベースのページネーションの最大`offset`は`9999`です。さらに大きいオフセットが必要な場合はマーカーベースのページネーションをお勧めします。
</Note>

## コレクション

コレクションのページネーションを行うと、APIによって、結果のセットを配列として含むオブジェクトのほか、結果の現在のページに関する情報が返されます。

| フィールド         | 型       |                                                                                 |
| ------------- | ------- | ------------------------------------------------------------------------------- |
| `entries`     | Array   | このページの項目を含むページ。結果がない場合は空の配列になります。                                               |
| `offset`      | Integer | 結果の現在のページに使用されるオフセット                                                            |
| `limit`       | Integer | 結果の現在のページに使用される制限。この制限は、このAPIエンドポイントに許可されている最大値を超えない限り、`limit`クエリパラメータと同じになります。 |
| `total_count` | Integer | コレクション全体の最後の項目のオフセットに1を加算した値。コレクション内の項目の合計数は、`total_count`よりも少ない場合があります。        |

## エンドポイントの例

以下は、オフセットベースのページネーションをサポートするエンドポイントの例です。

* <Link href="/reference/get-folders-id-items">フォルダ内の項目を取得</Link>
* <Link href="/reference/get-files-id-comments">ファイルのコメントのリストを取得</Link>
* <Link href="/reference/get-folders-trash-items">ごみ箱にあるすべての項目のリストを取得</Link>

<RelatedLinks
  title="関連するAPI"
  items={[
{ label: translate("List items in folder"), href: "/reference/get-folders-id-items", badge: "GET" },
{ label: translate("List all file versions"), href: "/reference/get-files-id-versions", badge: "GET" },
{ label: translate("List file comments"), href: "/reference/get-files-id-comments", badge: "GET" },
{ label: translate("List trashed items"), href: "/reference/get-folders-trash-items", badge: "GET" },
{ label: translate("Search for content"), href: "/reference/get-search", badge: "GET" },
{ label: translate("List enterprise users"), href: "/reference/get-users", badge: "GET" },
{ label: translate("List members of group"), href: "/reference/get-groups-id-memberships", badge: "GET" },
{ label: translate("List user's groups"), href: "/reference/get-users-id-memberships", badge: "GET" },
{ label: translate("List groups for enterprise"), href: "/reference/get-groups", badge: "GET" },
{ label: translate("List group collaborations"), href: "/reference/get-groups-id-collaborations", badge: "GET" },
{ label: translate("List pending collaborations"), href: "/reference/get-collaborations", badge: "GET" },
{ label: translate("List collection items"), href: "/reference/get-collections-id-items", badge: "GET" }
]}
/>

<RelatedLinks
  title="関連するガイド"
  items={[
{ label: translate("Sorting responses"), href: "/guides/api-calls/sorting", badge: "GUIDE" },
{ label: translate("Marker-based Pagination"), href: "/guides/api-calls/pagination/marker-based", badge: "GUIDE" }
]}
/>
