Pythonを使用してAPIのページネーションを実装する方法について説明します。この記事では、特にoffset
パラメータを使用したページネーションの実装に焦点を当てます。
Offsetを使用したAPIのページネーション
APIのページネーションでは、limit
とoffset
パラメータを使用してデータを取得します。limit
は一度に取得するデータの数を、offset
は取得を開始するデータの位置を指定します。
例えば、あるAPIが一度に最大1000件のデータしか返さない場合、全体で20000件のデータを取得するには以下のようにします。
import requests
from requests.auth import HTTPBasicAuth
import json
import getpass
p = getpass.getpass()
offset = 0
while True:
url = "https://example.api.com/api/1.0/devices/all/?offset={}&include_cols=asset_no,name,service_level,building&type=physical".format(offset)
r = requests.get(url, auth=HTTPBasicAuth('admin', p))
data = json.loads(r.text)
payload = data["Devices"]
# データの処理
offset += 1000 # offsetを1000ずつ増やす
if not data['has-more']: # 'has-more'がFalseになったら終了
break
このコードでは、offset
を1000ずつ増やしながらAPIを呼び出し、全てのデータを取得します。
まとめ
PythonでAPIのページネーションを実装する際には、limit
とoffset
パラメータを適切に使用することが重要です。これにより、大量のデータを効率的に取得することが可能になります。