通販サイト「Amazon(アマゾン)」が提供するAPI(amazon web service)の使い方をまとめる。
目標 †
amazon商品(新品・中古)のDBを作る。
公式サイト †
amazon web service (AWS)
http://www.amazon.co.jp/gp/feature.html?docId=451209
2) Amazon Web サービスで何ができますか?
RESTまたはSOAPを利用して、 Amazonで販売されている商品情報を毎日自動的に取得
登録ID(およびデベロッパー・トークン)について
1) 登録IDとは何ですか?
登録IDとは、AWSの開発者アカウントに関連付けられた識別子です。
AWSで提供されているすべてのWebサービスにアクセスするときに、登録IDが必要になります。
2) デベロッパー・トークンとは何ですか?
デベロッパー・トークンとは、過去にAmazonが開発者の皆さまに登録時に割り当てていた識別子です。
現在は、デベロッパー・トークンは発行しておらず、代わりに登録IDを発行しています。
過去に発刊された書籍や記事などでAWSのデベロッパー・トークンについて言及していることがありますが、デベロッパー・トークンを指定する場所に登録IDを指定することができるようになっています。
5) Amazon Web サービスのリクエストのサンプルコードを教えてもらえますか?
主要なリクエスト、パラメータやレスポンスグループの動作テストやサンプルコードの確認は、AWS Zoneをご利用ください。
ディスカッション・ボード(日本語) †
http://developer.amazonwebservices.com/connect/forum.jspa?forumID=19
Amazon APIの使い方 †
AWSから取得するデータはXMLになっている。
Amazonにリクエストを投げて、XMLで受け取る。
- PEARのライブラリを使う
- PHPで逐次処理する
ID取得 †
コンテンツサイトを作り、そこでamazonのアフィリエイトを行うには、
Amazon Webサービス | 登録ID(デベロッパートークン) |
Amazon アフィリエイト | アソシエイトID |
を取得して使う。
PEAR::Service_Amazon †
PHPのライブラリ集「PEAR」で、Amazon APIを簡単に利用するための「Service_Amazon」というライブラリが提供されている。
階層構造のデータをデータベースで扱う方法 †
Amazonの商品カテゴリーは、階層構造になっている。
階層構造のBrowseNodeId?のデータを、どうやってデータベースに格納すべきか?
SQLで木と階層構造のデータを扱う(1)―― 入れ子集合モデル
- 隣接リストモデル
- 経路列挙モデル
- 入れ子集合モデル
古典的な隣接リストモデルは、人間にとって分かりやすいが、SQLが簡素にならず、またパフォーマンスが低いとのこと。
入れ子集合モデルをテストしてみるか?
…と思ったけど、AWSから返されるAncestors(祖先)のデータを見ると、経路列挙モデルの方が合ってるかもしれない。
SQLで木と階層構造のデータを扱う(2)―― 経路列挙モデル
更新が少なく、大量データの検索が必要なケース(例えばデータウェアハウス)に向いているモデルです。
BrowseNodeId?は、大量データであり、時々しか変更されないだろうから、経路列挙モデルが最適かもしれない。
AWS Tips †
参考資料 †
特集:前編 WebサービスをAmazonで知る――ECS 4.0でアフィリエイト (1/5)
http://www.itmedia.co.jp/enterprise/articles/0501/17/news004.html
特集:後編 WebサービスをAmazonで知る――PHPでECS 4.0を使うテクニック (1/5)
http://www.itmedia.co.jp/enterprise/articles/0502/28/news003.html