商品一覧取得APIでソート順を指定した場合の挙動について
※下記の投稿を拝見し、ご回答内容を把握した上での質問です。
https://community.smaregi.dev/discussion/97/
上記の例を参考に「更新日時」でソートして商品データを取得できることは分かりましたが、おそらく登録されている全件を返すわけではないと思っています。
例えば1000件でレスポンスが切られるとして、必要なデータが1001件目以降にも入っている場合は、取得できないということになりますでしょうか。
あるいは、このケースでも"page"パラメータを指定することができますでしょうか。
#単純に要望になってしまうのですが、ソートではなく更新日時(あるいは作成日時)の範囲指定での絞り込みができるとありがたいと感じています。
ベストアンサー
-
例えば1000件でレスポンスが切られるとして、必要なデータが1001件目以降にも入っている場合は、取得できないということになりますでしょうか。
あるいは、このケースでも"page"パラメータを指定することができますでしょうか。
はい、pageパラメータがご利用いただけます。(page=2 で1001件目以降が、page=3で2001件目以降が取得いただけます)
更新日時での絞り込み機能につきましては、検索性能や機能の汎用性も考慮させていただき、検討させていただければと存じます。
なお差し支えございませんでしたら、どのような背景で更新日時での絞り込みをご希望なのか、参考にお教えいただくことは可能でしょうか?
(他データベースへのデータ同期や差分取り込み、といったご要件でしょうか?)
どうぞよろしくお願い致します。
-
12/15のアップデートで「商品一覧取得」を更新日時で取得できるようになりました。
upd_date_time-from/upd_date_time-toは31日間で指定できます。
以上、ご確認をお願いいたします。
答え
要望部分に関しての補足です。
質問内容とは逆のパターンで、該当件数が数十から数百件の場合ですが、現状の挙動だとおそらく「とりあえずMAX件数取ってみて、サーバ側で不要部分を切り捨てる」という処理が必要になり、「とりあえずMAX件数取ってみる」だとレスポンスに難があり、代替として「小出しに複数回APIをコールする」だと将来的にAPIコール回数制限がネックになりそうだなと考えた次第です。
ご返答ありがとうございます。
商品情報の規模や更新頻度などは今後の営業展開次第でピンキリになる可能性もあり何とも言えないのですが、
「スマレジ商品情報と弊社アプリサーバ内データとの同期を毎日行いたい。」
「スマレジ商品情報は日中でも更新されることがあるが、リアルタイムでアプリサーバとの同期が行われると日中の業務に支障が出るため、店舗営業に支障のない時間帯に行ないたい。」
という顧客からのご要望が背景としてあり、実現方法を検討していたという次第です。
端的に「前回取得時以降に登録・更新された商品データを任意のタイミング(あるいは定時バッチ)で取得したい。」というのが目的です。
絞込みの要望については、現在の仕組みでも実現は可能なのである意味軽い気持ちという面もありますが、ありていに双方に無駄が発生しているのでは・・・?と考えた次第です。
・呼出し側(弊社アプリ)は、範囲指定ができないためとりあえず全件取得してみて、自前で絞り込むしかない。
・呼び出された側(プラットフォームAPI)は、ピンポイントで値が指定されている場合以外、呼出し元が本当に必要とするデータがどれかわからないためとりあえず全件返すしかない。
なお、先方へは更新日時でソートして自前で絞り込む方法でご提案をいたしました。
以上、ご参考として。🙂
@ANLAB_田村 様
詳細にご教示いただきまことに有難うございます。
おっしゃる通り、現状のインタフェースにてデータの同期を行われる場合、不必要なデータが取得され、双方に無駄が発生してしまいますね...
また、今回はお客様にソートして自前で絞り込む方法をご提案いただいたとのこと、有難うございます。
updDateTimeでの絞り込みは現行だと商品数が数十万件を超えるお客様などの場合にパフォーマンスの懸念があるのですが、メリットも大きく同様のご要件も多いと思われますので、データスキーマを考慮しぜひ今後の改善として前向きに検討させていただきたく存じます。
今回はお役に立てず大変申し訳ございませんが、ご参考にさせていただきまことに有難うございました。
> upd_date_time-from/upd_date_time-toは31日間で指定できます。
ご連絡ありがとうございます、助かります!