[前回までの記事はこちら]
さて、BASEのAPIで商品情報の一覧を取得する、「GET /1/items」について。
前回少し気になっていた、limitパラメータに指定できる上限値は100なのに、それより多くのデータを取得したい場合はどうすれば良いんだろう?
という疑問について検証を行った結果、無事解決しました。
予想通り「offset」に値を設定する事で、その分データの取得開始位置をズラす事ができる様です。
今回、以下の様に商品名に連番を付け、001~150までのテストデータを登録して試してみました。
limit=150で検証
まずはlimitに指定する値を上限値100を超えた「150」を設定して実行してみます。
↓結果はこちら。
一応レスポンスエラーにはならないみたいですが、取得できるデータ数はlimitの上限(100個)までみたいです。
ちなみに微妙に番号がズレていたり行数が「103」になっているのは、元々商品が2つ登録されており、内一つにバリエーションが設定されているデータがあったからです。
詳しくは過去記事参照。
⇒ PythonでBASEのAPIを叩いて商品データを取得してみる -その2-
offset=50で検証
ではlimitは100に戻し、今度はoffsetに「50」の値を指定した状態で実行してみます。
結果は・・・
先頭のデータは49番からスタートし、終わりは148番となっています。
offsetに指定した値分、取得位置がズレているのが分かりますね。
offset=100で検証
では最後に152点しか登録されていない状態で、「limit=100」、「offset=100」を指定して実行してみます。
結果はこちら。
先頭のデータは99番から始まり、終わりは53行目の150番。
取得できる分のみデータが返って来たという事ですね。
もちろんいずれの処理もエラーは無し。
結論
BASEのAPIを使って101点以上の商品データを取得したい場合は、offsetを使って位置を調整しながら取得する。
という事で。
ちなみに、「offsetに指定した値」の『次』の位置から取得が行われる点に注意です。
limit=100として100個のデータを取得した後に101個目以降のデータを続けて取得したい場合、『offsetに指定する値は「100」』となります。
次回は更新と削除の処理を試してみようと思います。