cfアマゾン検索

1年前にも作った「cfアマゾン検索」ですが、今回作ったサイトはこちらです。

以前のサイトと今回の違いは以下のとおりです。

Amazon Webサービスのバージョンを3.0から4.0に変更

最新のバージョンで作ってみたかったということが大きいです。最新のバージョンではカート機能などいろいろとありますが、今回使用したのは、
Operation=ItemSearch
だけです。

オブジェクト指向を取り入れた

本などのカテゴリによっては、検索条件や表示内容が違う場合があります。今までのプログラムでは、カテゴリ条件に応じてif文などが多用されると思います。
検索項目表示部分では、

<cfif kbn eq "Books">
〜
<cfelseif kbn eq "ForeignBooks">
〜
....
</cfif>

となります(cfswitchでもよい)。
また、メール配信する際は、メールのあて先がそれぞれ違います。今までのやり方であれば上記のように、またif文を書かないといけないです。
アマゾンがカテゴリを追加しないのであれば、今までのようにif文使ってもよいでしょう。でも、アマゾンがカテゴリを追加する可能性もあります。その場合は、カテゴリ別のif文を検索しなおして、その部分に追加修正する必要があります。
プログラムの管理やメンテナンスが面倒になります。
そこでオブジェクト指向として、以下のように考えました。
きちんと考えるといろいろあるでしょうが、単純に考えて、

  • カテゴリの基本となるオブジェクトをitem.cfcとして作成
  • それぞれのカテゴリは、Books.cfcなどitem.cfcを継承して作成

カテゴリで共通の関数やデータは、item.cfcに記述し、共通でないものは、それぞれBooks.cfcに記述する。
そうすることによって、カテゴリ別の管理がしやすくなります。
また、オブジェクト指向のよい点は、以下のような記述ができます。

<cfset searchObj = CreateObject("component", "Books").init()>
<cfset a = searchObj.getSearchURL()>
<cfset searchObj = CreateObject("component", "Kitchen").init()>
<cfset b = searchObj.getSearchURL()>

変数a,bの値は、それぞれBooks用Kitchen用となります。
if文を使わずプログラムもシンプルに記述できます。
オブジェクト指向については以下の本がよいでしょう。
まるごと図解 最新オブジェクト指向がわかる

メール配信追加

こちらこちらを参考にしてください。

携帯用サイトも作成

PCのサイトから表示や検索項目部分をそぎ落として、再編集しました。
こちらになります。
アマゾンへのリンク部分は、PCと携帯で使い分けています。PCでのリンクはPC用のアマゾンサイトへのリンクです。携帯からアクセスすると携帯用のアマゾンサイトにリンクしています。


もし興味がありましたら、「cfアマゾン検索」をお試しください。