堕落三昧

日々のあれこれを徒然なるままに書き連ねるブログです。

【Ruby】Ruby で Amazon Product Advertizing API を使う ~その2~【AWS】

前回の続き

RubyでWEBサービスを作るにはRailsを使うのが良いらしい。

Ruby on Rails(ルビーオンレイルズ)はオープンソースのWebアプリケーションフレームワークである。RoRまたは単にRailsと呼ばれる。その名にも示されているようにRubyで書かれている。またModel View Controller(MVC)アーキテクチャに基づいて構築されている。(Wikipedia参照:http://ja.wikipedia.org/wiki/Rails)

このフレームワークの基盤に沿って自分の好きなプログラムを書けば、作りたいものが作れるらしい。

今回はRailsでAmazon Product Advertizing API を使ってAmazonの商品情報を使ったサービスを作ることができればいいな〜っと。
今回使用したRailsのバージョンはRails 3.1.1 。

Railsでのアプリケーションの作成

$ rails new aws

上記のコマンドでRailsのアプリケーションを作成する。
今回はawsというアプリ名で作成した。
実行するとカレントディレクトリの中にawsというディレクトリが作られ、そのディレクトリ以下に様々なものが作られているはず...

Gemfileへの追記

Rails内でRubyの標準パッケージ以外のパッケージを使用する場合には、アプリケーションの一番上のディレクトリ内のGemfileへ

gem 'ruby-aaws'

と追加する。
これは 'ruby-aaws' というパッケージを追加するための追記内容。
前の記事で書いた通り、これはAmazon Product Advertizing APIを使用するためのパッケージ。

コントローラーの作成

$ rails generate controller aws

アプリの制御を行うコントローラーをawsという名前で作成する。

RailsでパッケージAWSを使用する

rubyでパッケージAWSを使用したいので、前の記事のように
設定ファイル.amazonrcをコントローラーと同じディレクトリapp/controller/に置き、
app/controller/aws_controller.rbの中に

# coding: utf-8

ENV['AMAZONRCDIR'] = './'
ENV['AMAZONRCFILE'] = '.amazonrc'

require 'amazon/aws'
require 'amazon/aws/search'

include Amazon::AWS
include Amazon::AWS::Search

class AwsController < ApplicationController
  def index
    render :text => 'aws のトップページです。'
  end
end

とAPIが使用できる様に設定ファイルをインポートしてみたが、エラーが出てAPIが使用できない。
Railsの一番上のディレクトリ構造を眺めていたら、一番上のディレクトリの中にconfigというディレクトリが存在した。
もしかしてここに設定ファイルを入れればいいのかな?と思い、設定ファイル.amazonrcファイルを入れてみる。
それに伴い、aws_controller.rbの設定ファイルの読み込み部分も書き換える。

ENV['AMAZONRCDIR'] = 'config'
ENV['AMAZONRCFILE'] = '.amazonrc'

すると、APIがうまく使えた!めでたしめでたし。