メインコンテンツまでスキップ

ページ分割された応答からすべてのオブジェクトを取得する

ヒント

SWATのREST APIの応答は、条件に適合するすべてのオブジェクトを常に返すわけではなく、ページ分割されます。

すべてのオブジェクトを照会するには、顧客は応答ペイロードのメタセクションのデータを使用できます。limitは各ページのオブジェクト数の制限、offsetはページ番号です(カウントはゼロから始まります)。

nextは次のページ、previousは前のページ、total_countは条件/クエリパラメータに適合するすべてのオブジェクトの数です。たとえば、organization_code = ORGANIZATION_CODE

以下は、シミュレーションIDでフィルタリングされ、予約IDで並べ替えられた、ページ分割された応答からすべての予約を取得するためのコードサンプルです。

ページ分割されたデータ(予約)を要求する
import time
import requests
import os

BASE_URL = os.environ.get("BASE_URL")
USERNAME = os.environ.get("USERNAME")
PASSWORD = os.environ.get("PASSWORD")

LIMIT = 10
SIMULATION_ID = 378
all_bookings = []
next_page = f"/api/v2/booking?limit={LIMIT}&order_by=id&simulation={SIMULATION_ID}"
while next_page:
url = f"{BASE_URL}{next_page}"
response_body = requests.get(url, auth=(USERNAME, PASSWORD)).json()
print(response_body["objects"])
all_bookings += response_body["objects"]
next_page = response_body["meta"]["next"]
if next_page is None:
break
time.sleep(0.1) # Avoid request too fast

print()
print(all_bookings)