Web APIを使うと個人や一企業での収集が難しいデータが簡単に手に入ります。多くは自社の保有するデータをオープンにするWeb APIが多いですが、中には翻訳や画像変換などの様々な機能をWeb APIとして公開しているものもあります。

こういったWeb APIを複数組み合わせることで、全く新しいアプリを作ることができます(なお、複数のWeb APIを組み合わせることをマッシュアップと言います)。

今回は楽天ブックス書籍検索APIを使って書籍検索アプリを作ってみます。

アプリの概要

今回作成するアプリは入力した文字に合わせて楽天ブックスを検索して、その検索結果を一覧表示します。

そして検索結果をタップすると、その書籍の詳細情報を表示します。

では作っていきます。

楽天ウェブサービスでアプリケーション登録

楽天ウェブサービスではアプリIDを発行して、そのアプリIDを使ってWeb APIにアクセスします。このキーは複数作成できますが、漏洩すると他のユーザがなりすましてWeb APIを使えてしまいますので取り扱いには注意してください。

アプリの開発

ではアプリの開発をはじめていきます。今回は「Onsen UI V2 JS Navigation」テンプレートをベースにしています。画面遷移(今回は一覧画面と詳細画面)の伴うアプリでは、このテンプレートをベースにするのが良いでしょう。

なお、今回はjQueryを使って実装していきます。

画面の作成

まずは画面を作成します。画面は一覧画面と詳細画面の二種類があります。画面間を行き来する操作があるので ons-navigation を使います。

一覧画面

一覧画面は次のようになります。検索する文字列を入力する ons-input を用意しておきます。検索結果は div#books 以下に表示されます。

詳細画面

詳細画面は次のようになります。今回は書籍の画像とタイトル、説明を表示します。楽天ブックスAPIからはこの他にもたくさんの情報が返ってきますので、カスタマイズして表示する情報を増やしてみても良いでしょう。

JavaScriptの実装

次にJavaScriptの実装について紹介します。主な機能は次の通りです。

  1. 入力された文字列で楽天ブックスAPIを使って検索
  2. 返ってきたデータを一覧表示
  3. 一覧をタップしたら、その書籍の詳細情報を表示

では進めていきましょう。まずは全体のコードを紹介します。楽天APIのIDは自分のものを入力してください。

入力された文字列で楽天ブックスAPIを使って検索

まず一覧画面で検索を行う処理です。テキストボックスに検索文字列が入力されているのかどうかを判定します。

検索文字があれば、楽天ブックスAPIを呼びます。URLは次のようになります。

URLは用途に応じてカスタマイズができます。楽天ウェブサービス: 楽天ブックス書籍検索API(version:2013-05-22) | API一覧を参考にしてください。

ジャンルIDは001として、書籍に限定しています。

そして生成したURLにAjaxでリクエストを実行します。今回はMonaca IDEのプレビュー画面でも動くようにJSONPを使っています。Monacaデバッガーのみで確認する場合はJSONでもOKです。

処理成功した場合は結果を一覧に追加します。書籍はタイトルが長い場合があるので、50文字を超える場合は省略して末尾に「…」をつけるようにしています。

書籍タイトルをタップして画面遷移

次に一覧の中から書籍タイトルをタップした時に詳細画面に遷移するようにします。これは次のように実装します。pushPageする際に、書籍データを引き継ぎます。

書籍の詳細を表示

最後に画面遷移した後の詳細画面を表示します。今回は書籍の画像、書籍名、概要を表示します。


楽天ウェブサービスのAPIを使えば楽天市場や書籍、ホテルなど様々なデータが取得できます。アフィリエイトとも絡められるので、便利なアプリをお小遣い稼ぎに使うこともできるでしょう。

今回のコードはmoongift/monaca-with-rakuten-apiにアップロードしてあります。実装時の参考にしてください。