2016年3月1日火曜日

楽天APIではまったポイント

はじめに


前回まで楽天APIを使ったことを書きましたが、その中ではまったポイントをメモしておきます。

1秒間に1アクセス


実際の運用では1日に1万以上のキーワードについてAPIで検索しています。
当初は問題なかったのですが、数日後には途中で止まることが多くなってきました。
そういえば利用制限のこと気にせずリクエスト発行しまくっていたなぁと思い調べてみると、、


1秒間に1アクセスだったんですね。。

今、APIのリファレンスを見返してみるとアクセス制限ならそれっぽいエラーが返ってくるようですが、止まってしまっていた時はそんなエラーではなかった記憶があります。
単にネットワークが不安定だったのかもしれません。。

とはいえ利用制限は守るべきですので、1アクセスごとに適当に1秒待つようにして運用しています。それ以来途中で止まることがなくなったようです。

キーワードは2文字以上


keyword parameter is not valid

「keyword が正しい値でなかった時。(半角1文字のみ指定など)」

このエラーも出ました。

例えばキーワードを「ドラゴンクエスト 4」としても出ると思います。「4」が半角でその前にスペースが入っているから「4」が1単語とみなされエラーになるようです。

実運用時には大量のゲームソフトのタイトルでそれぞれ検索をかけています。中にはタイトルに変なスペースが入っていたりしてエラー条件に引っかかることがよくあります。

とりあえず下記のようなコードで1文字単語を取り除いて検索をかけることにしてエラーを回避しました。

    keywords = keyword.split(' ').select {|item| item.length > 1}
    keyword = keywords.join(' ')

0 件のコメント:

コメントを投稿