2008/03/22

Ruby Amazon E-Commerce REST Service API

Amazonへのアイテムリンク生成に、Amazon提供のWidgetを使わないようにしようと決めたので、自分で作ってみることにしました。当初は amazlet を使わせていただこうかな、とも思ったのですが、自分で作った方がいろいろいじれるので、便利かな、と。

勿論(?)、使う言語は ruby なわけですが、Amazon Web Service APIが簡単に使えるライブラリはないかな、ということで、今回はamazon-ecsを使わせて貰いました。

APIを見る限り、非常にプリミティブなAmazon Associates Web Service(旧名Amazon E-Commerce Service)とのバインディングなので、AmazonのAPIマニュアルを見ながら簡単に使うことが出来ます。

一点悩んだのが、13桁ISBNでのItemLookUp方法。ドキュメントによればJPでは、ISBN指定出来ないことになってるんですけど (^^;

Google様にお伺いしたら、古いドキュメントには、もう少し詳しい記述があることが分かりました。曰く:
  • IdTypeISBNにすることで13桁ISBNが使えるよ
  • でも、SearchIndexBooksForeignBooksにしてね
ふむふむ、というわけで、自分の使用用途を鑑みて、こんな感じに amazon-ecsのitem_lookupをWrapしてみました。
#!/usr/bin/env ruby

require 'rubygems'
require 'amazon/ecs'

class Amazon::Ecs
instance_eval do
alias :item_lookup_ :item_lookup
end

def self.item_lookup(item_id, opts = {})
id = item_id
id = id.sub('-', '') if (id.size == 14 && /[0-9-]/ =~ id)
if (id.size == 13 && /[0-9]/ =~ item_id)
opts[:id_type] = :ISBN
opts[:search_index] = :Books unless opts[:search_index]
end
self.item_lookup_(id, opts)
end
end
ForeignBooksを検索したい時には、事前にoptsで指定しておいてね。

便利なライブラリのお陰で、さくっとコードを書くことが出来ました。皆様、感謝です。

0 件のコメント:

コメントを投稿