アサマシ。BookmarkletでのアサマシHTMLコード作成も悪くは無いのですが、まったくフォーマットが違うアサマシHTMLコードを作成するようにするにはほとんど一から作り直しになって大変。というわけで、テンプレートをどっかのサーバーに置いておき、それを読み込んでアサマシHTMLコードを作成できるlabs.hail2u.net/amazon/asamashi/を作った。アサマシ。
リクエストのスタイルはlabs.hail2u.net/amazon/と同じ系統で、URLのハッシュにASINコード/アソシエイトID/テンプレート・ファイルのURLを指定するというもの。例えば、
http://labs.hail2u.net/amazon/asamashi/#4844322222:hail2unet-22:http://labs.hail2u.net/amazon/asamashi/template.js
といった感じ。強調してあるように各パラメータはコロン(:)で区切る。
- デフォルトのテンプレート
- クロス・ドメインのテンプレート・ファイルを利用することができる
- テンプレート・ファイルにはインライン・スタイルシートを埋め込むことができる
こんな感じにプレビューとHTMLコードが表示される。単純なURLの構造なので、ASINコードを選択して起動させるBookmarkletなんかは簡単に作れる。
Amazon Web Servicesから引くデータはSmall,Images
にしたので、ちょっとテンプレートに使える変数が少ない。拡充したいという気持ちはあるもののイレギュラーなケースに対応するのが面倒で。
URLチェックが甘いので、リクエストによっては変な挙動になるかも。
テンプレート・ファイルはprototype.jsの1.5.0 rc0のTemplateクラスを利用したもの。JavaScriptのコードを考えるのが面倒だったので、テンプレート・ファイルをJavaSccriptで書かせるとかいう仕様に。Templateクラスの使い方はprototype.js 1.5 からの新機能 Template の使い方に書いてあった。#{foo}
とか書き慣れてないので書きにくいけど気にしない。
設置しているサーバー側にはHTMLをサーブする以上の負荷はかからないので、安定してサービスを提供できる気もする。
動作に必要なのはHTMLファイルとXSLファイル、テンプレート・ファイルの3種類なので、どっかのサーバー(CGIの動かないサーバーでも問題なし)に置き、AWSへのリクエストのResponseGroup
パラメータの値をいじった上でXSLファイルをいじればもっと強力なものにもできる。価格を表示するとかね。
アサマシ系統のネタが多い今日この頃。
追記
Internet Explorer 6とOpera 9でも動くようにした。Yahoo!なんかでも使われてるJSONPとかそういう系統のアプローチで。他も更新しよう。