楽天市場の商品の検索API
楽天市場の商品の検索API、バージョンが上がった。
version:2010-08-05だ。
今回のバージョンアップでは、大きな変更があった。
というのも、アフィリエイトURLがPCとモバイルで共通になったのだ。
今までは、pc用のアフィリエイトURLとモバイル用のアフィリエイトURLは、別になっていた。
これが実は、かなり面倒だった。
というのも、APIにリクエストを2回しないと、pc用のURLとモバイル用のURLが取得できなかったのだ。
別になっていても、一回のリクエストのxmlの別の所に入っているのであれば、リクエストは一回で済むのだが、なぜか別々だった。
楽天のウエブサービスが、どういう考えでこういう仕様にしたのかは良くわからないのだが、とにかく面倒だった。
pc用のアフィリエイトURLをもらおうと思ったら、楽天市場のAPIサーバへのリクエストURLに『pc用の情報をください』という情報を入れなければならず、その場合はpc用のアフィリURL情報しか戻ってこない。
逆にモバイル用のアフィリエイトURLをもらおうと思ったら、楽天のサーバーへのリクエストに『モバイル用の情報をください』という情報を入れないといけないのだが、このときに返ってくるのは、モバイル用のアフィリURL情報だけになっている。
なので、pcサイトと携帯サイトを同時に作ろうと思ったら、二回リクエストしないといけなかったわけだ。
それが今回、ようやく共通化されたと言うことだ。
これがなぜ困ったことかというと、一つの商品情報を取るのに、2倍時間がかかってしまうのだ。
私のサイトのように、APIで情報を一度に50コとか100コもらってバッチ処理でサイトを更新する仕組みにしていると、リクエスト量が倍になると言うことは、処理時間が2倍かかることになる。
楽天の検索APIは、1秒間に1回未満しかリクエストができないという仕様になっているので、リクエストが2倍になると言うことは、まともに処理時間が2倍になると言うことだ。
一方、レンタルサーバー上でcgiプログラムを動かしているので、レンタルサーバーの制約がある。
cgiプログラムを3分以上動かすと、ストップがかかって処理が止まってしまうのだ。
3分というと、180秒だから、リクエストが2倍になると、最大でも90この検索しかできないことになるわけだ。
90回のリクエストがすんなり通って、必要な情報がすぐにとれればいいが、実際には、タイミングが悪くて情報が返ってこなかったりすると、3秒くらい間隔をあけて再リクエストを投げたりするので、pcサイトと携帯サイトを同時に作る場合は、せいぜい50コが上限だった。
検索回数できる上限が50コだと実はちょっと足りない。
というのも、都道府県別の情報を集めたサイトを作ろうとすると、最低でも47回リクエストすることになるからだ。
47回のリクエストがすんなり通ればいいけれど、実際にはそう上手くいかないので、結局処理が止まってしまう。
なので東日本と西日本に分けたりしなければいけなかったわけだ。
そういうことだから、pcとモバイルのアフィリエイトURLが共通化されたことは、朗報だ。
よしそれでは私のAPIツールもバージョンアップだ!、、、と思って楽天ウエブサービスのページをよく読んでみると、ちょっとマズいところがあるのに気が付いた。
pcとモバイルが共通になったのだから、リクエストURLにキャリア情報など必要ないはずなのに、なぜかまだ残っている。
以前のバージョンの仕様を引き継いでいるだけかと思ったら、違った。
なんと商品名や商品情報のところに、 ※キャリア(carrier)の指定により返却情報が異なります。
と書いてある。
えーーーーーーーーー、それやったらやっぱり2回リクエストを投げないといかんわけか???出力パラメーターにpc用と携帯用の2通りの情報を入れてくれればイイだけなのに、、何かちょっとガッカリの今日この頃です。
公開日:2010年08月 08日