ページ分割の仕組み
リストエンドポイントと検索エンドポイントの結果をページ分割する方法をご紹介します。
Stripe API には、Customer の一覧表示や PaymentIntents の検索など、複数のオブジェクトを返すことができるリストエンドポイントと検索エンドポイントがあります。パフォーマンスへの悪影響を考慮し、これらのエンドポイントは一度にすべての結果を返しません。代わりに、Stripe は API コールが実行されるごとに結果を記したページを返します。各ページには、デフォルトで最大 10 件の結果が記されます。limit パラメーターを使用して、ページあたりの結果数を変更できます。
たとえば、これは Customer を一覧表示する API リクエストで、次の 3 つの limit
があります。
Stripe からのレスポンスには、次の 3 つの結果を記したページが含まれます。
Truncated API response
{ "data": [ { "id": "cus_005", "object": "customer", "name": "John Doe", }, { "id": "cus_004", "object": "customer", "name": "Jane Doe", }, { "id": "cus_003", "object": "customer", "name": "Jenny Rosen", }, ], "has_more": true, /* ... */ }
これらのエンドポイントを使用する際は、次の点に注意してください。
- オブジェクトは
data
プロパティ内にあります。 - オブジェクトは時系列の逆順で、最後に作成されたオブジェクトが最初のオブジェクトになります。
has_
プロパティは、この要求で返されなかった追加のオブジェクトがあるかどうかを示します。more
data
配列をループしてオブジェクトを通過する代わりに、結果をページ分割する必要があります。これにより、has_more パラメーターが true
のときに一部のオブジェクトが失われるのを防ぐことができます。
自動ページ分割
すべてのオブジェクトを取得するには、自動ページ分割機能を使用します。これにより、has_
が false
になるまで複数の API コールが自動で実行されます。
注
リストエンドポイントで自動ページ分割を使用した後、ending_before を設定すると、結果が時系列順になり、最後に作成された顧客が最後に表示されるようになります。
手動ページ分割
次の手順に従って、結果を手動でページ分割します。このプロセスは、リストエンドポイントまたは検索エンドポイントを呼び出す場合と異なります。