前回の「ハリボテ」君アプリに、いよいよ本丸部分の「検索機能」を追加する。
前回までのアプリのソースのダウンロードは、ここから。
ソースコードを書く前に・・・
検索機能の中身について考える
実際にソースコードを書く前に、検索するのにどんなことが必要そうか、ざっと順にイメージしてみた。
1.商品データからデータを取得する場合は、ある決められた形式の「呪文」(リクエスト)が必要。
となると、当然、「呪文」を組み立てする機能が必要。
2.組み立てた「呪文」(リクエスト)を唱える機能、つまり商品データベースへ「データちょうだい!」と
伝える機能が必要。
※但し、現在のAmazonルールだと、呪文を暗号化して「ホントにAmazonIDを持ってる本人だよ~」
とAmazonに証明する必要がある。
3.商品データベースがよこした「検索結果」を受け取って、好みの形にする機能
どんな形式で結果が返ってくるか調べて、そこから「当初やりたいこと」を抜き出す必要がある。
機能を追加する、つまり「ハリボテ」君にプログラムコードを追加で書いてあげる、
要は、「ハリボテ」君をパワーアップさせて、「できること」を増やしてあげるわけだが、
ここは、プログラム作成のプロ(いちおうシステムエンジニアデス)なので、基本的常識の
「オブジェクト指向」という考えを使って、「ハリボテ」君をパワーアップさせる。
「オブジェクト指向」ってなーに?と説明しだすと、本が何十冊も必要になってしまうので w(゚ロ゚)w マジデ?
イメージがつかみやすいような、ある例え話をする。
オブジェクト指向をぶっちゃけ例えると・・・
あなたが、ある仕事を上司から命じられたら、どうする?
自分の能力に自信がある人は、一人でがんばってやってしまうだろう。
そうでない人や、時間がない人の場合はどうするだろうか?
そう、「その仕事をできる人」に振ってしまえばいいのだ(笑)
極端なことをいうと、「オブジェクト指向」でやるということは、
「他人に仕事を振りまくる」やり方ともいえる。 ゞ( ̄∇ ̄;)ヲイヲイ
「その仕事をできる人」を「オブジェクト」君(ロボットでもよい)と呼ぶことにすると、
「オブジェクト指向」でやるということは、「この仕事、やって~」と、ロボット君に声をかける、
依頼する、押し付ける(笑)ことを意味する。
はい、ここで、「ハリボテ」君アプリに戻る。
「オブジェクト指向」で考えて、検索する機能(仕事)を、それができるロボット君にお願いしようと思う。
とはいえ、ロボット君を自分でいちから作るのもなんなんで、「Amazon AWS サービス」のサンプルコード集から
使えそうなものを探してみた。
・・・はい、ありました。はやっ!
Product Advertising API Signed Requests Sample Code - C# REST/QUERY という、アマゾンが提供している
サンプルコードがある。
上記サンプルの、「SignedRequestHelper」クラスという「ロボット」君を使う。
名前のSignedからわかるように、暗号化の処理もやってくれそうだ。
・・・と、時間がなくなったので今日はこれまで。
次回は、「SignedRequestHelper」クラスを使って、実際に「ロボット」君にお願いしてみる。
(参考)
・AjaxTower Amazon Web サービス入門 「リクエストの基本形」
6) Product Advetising API では、すべてのリクエストに署名認証を含める必要があると聞いたのですが、具体的にはどうすればよいですか?
・「Amazon Product Advertising API」の
Product Advertising API Signed Requests Sample Code - C# REST/QUERY