ページ分割
概要
奉行クラウド API では、取り込む条件によってはデータサイズが大きくなるレスポンスを、分割して取得するための「継続トークン」という仕組みを用意しています。
取得結果の一部のデータとともに「継続トークン」をレスポンスヘッダーに指定して、レスポンスを返します。
この「継続トークン」を、リクエストヘッダーに指定して再度 API をリクエストすると、分割した残りのデータを取得できます。
このように「継続トークン」を指定してリクエストを繰り返すことで、条件に合致するすべてのデータを取得できます。
データ取得 API の課題
API でデータサイズが大きくなる可能性がある業務データを取得するには、いくつかの課題があります。
リクエストのタイムアウト
ネットワークの状態や取得するデータのサイズにより、リクエストからレスポンスまでの処理時間が長くなることがあります。
処理時間が遅くなると、インフラやネットワークに起因して、タイムアウトが発生する可能性が増加します。
リクエストした処理の進捗状況がわからない
通常、リクエスト元のアプリケーションに対して、サーバー側から処理状況をコールバックできません。
リクエストからレスポンスまでの処理時間が長くなると、アプリケーション側では処理の進捗状況を判断できず、サーバー側で処理が進んでいるのか判断できなくなります。
『奉行クラウド』のサーバーリソースを消費し続ける
リクエストを処理している間、サーバー側ではリクエストに対してリソースが割り当てられます。
リクエストからレスポンスまでの処理時間が長くなると、『奉行クラウド』の負荷が大きくなり、動作に影響を及ぼす可能性が増加します。
これらの課題を解決するため、奉行クラウド API ではデータ取得の結果を分割し、分割したデータと継続トークンをレスポンスで返す「ページ分割」という仕組みを用意しています。
ページ分割を使用したデータの取得方法
ページ分割に対応する API では、指定した条件でまだ取得していないデータがある場合に、レスポンスヘッダーに 「X-OBC-ContinuationToken」 という継続トークンが指定されます。
継続トークンを使用して、分割したデータをすべて取得するための一連のフローです。
詳細は、API ごとのリファレンスをご参照ください。
参考
継続トークンの生存期間は5分です。
条件を指定してデータを取得します。
Request Body
POST https://api-sandbox.obc.jp/sample/Search
Authorization: Bearer ********************************
X-OBC-SubscriptionKey: ********************************
X-OBC-TenantID: ***********
{
…
}
ページ分割された結果データとともに、レスポンスヘッダーに X-OBC-ContinuationToken という継続トークンが設定されます。
Response Body
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
X-OBC-ContinuationToken: abcdefg0123456789
[
{
…
}
]
ページ分割されたデータを取得する場合、初回のレスポンスにデータが1件も含まれないことがあります。
その場合でも、X-OBC-ContinuationToken が設定されている場合には、残りのデータが存在する場合があるため、「3. 2回目以降のリクエスト」を行います。
「2. レスポンス」のレスポンスヘッダーに設定された X-OBC-ContinuationToken をリクエストヘッダーに指定して、再度リクエストします。
Request Body
POST https://api-sandbox.obc.jp/sample/Search
Authorization: Bearer ********************************
X-OBC-SubscriptionKey: ********************************
X-OBC-TenantID: ***********
X-OBC-ContinuationToken: abcdefg0123456789
{
・・・
}
レスポンスヘッダーに、 X-OBC-ContinuationToken が設定されていない場合は、データの取得が完了したことを示します。
ページ分割されたレスポンスについて
ネットワークの状態や、『奉行クラウド』のサーバー側の負荷状況により、すべてのデータを取得するまでの API の実行回数は変わります。
開発環境の『奉行クラウド』で実際に API を実行し、実行回数やレスポンスデータの内容を確認してください。