Twitter、Amazon、楽天、Yahoo ショッピングの比較

前々から、WEBサービスAPIに興味があったんだけど、あることがきっかけで、3社のAPIを使用する機会ができたので纏めてみました。使用したのはいずれも、商品検索系のAPIです。いずれのAPIPHPを使用してアクセスしました。パフォーマンスが気になることはなかったです。WEBサービスAPIって遅くないなと、、、この辺の詳細は後で調べたいです。

Amazon

大量データにアクセスするが故と思われる制限が結構あります。例えばソート指定できない場合があるとか、1度に取得できる件数は10件固定とかです。それと、リアルタイム性が低い気がします。売り切れかどうかを判断できないとかです。
日本語のドキュメントが少ないのは困りもの。

楽天

使いやすい。日本語だし、日本人が作ったAPIって感じです。ソートや取得件数なども難なく指定できます。取得件数に対してページ指定ができます。

Yahoo ショッピング

ちょっと古い印象、ページ指定はできません。取得件数と何件目から取得みたいな指定をしないといけません。


Twitter

おまけ使うのは簡単、運用は難しいといった印象。当たり前だけど twitter を知らないと使うのは難しい。日本語のキーワードで検索する時にはlocaleに[ja]を指定しないと引っかからなかった。逆に日本語以外を検索する時にはlocaleの指定はいらない。発言には一意にシーケンシャルな番号が振られているようで、1ヶ月前に見た時は 20512380538519552 !検索以外は OAuth で認証しないと使用できないAPIも有り。

GAE/Jの運用で気づいたこと その3

GAE/Jの運用で気づいたこと その2はまだ検証してないけど。
GAEではアプリケーションをバージョンで管理できます。1アプリケーションにつき10バージョン管理できます。
バージョン間でデータストアのEntityデータは共有できるみたいです。

GAE/Jの運用で気づいたこと

自分がGAE/Jで運用している掲示板に手を入れて、それから気づいたことを書きます。

ServletContextListener#contextInitializedが何度も call されている。

今回 ServletContextListener を実装してパラメータとか環境周りの属性をダンプするようにしてみたんだけど、ログをみるとこれが何度となく呼ばれている。GAEにアップした直後だけ呼ばれると思っていたけど、どうやら違うらしい。アクセスがないとアプリが停止して?リクエストを契機に再起動される?このタイミングで何度も call されている。たまにレスポンスがすごく重いのはこれが原因で間違いなさそう。Singleton とかどうなるんだろう。キャッシュとか自分で作ってたらどうなるんだろうか? キャッシュなくなっちゃう?そういうのはするなって事かなぁ。停止(休止?)される基準がしりたい。