
DB2でさくさく実現するRESTfulなDBアプリ(3)
FirebugでRESTfulなDBアプリに挑戦!!
JavaScript(Jester)でリソースに直接アクセスする
使えば使うほど魅力的なRailsのライブラリに、JavaScriptからActiveRecordのようにデータベース操作が可能なJesterという便利なライブラリがあります。RESTで操作が行えるため、CRUD操作をHTTPのPOST、GET、PUT、DELETEのメソッドで実行できる、素晴らしいライブラリです。早速試してみましょう。
Jesterの準備
セットアップはとても簡単です。2つのファイルをコピーし、レイアウトファイルを編集するだけです(今回は2つのファイルをコピーしますが、Jesterを使うにはjester.js、ObjTree.js、prototype.jsの3つのファイルが必要です。prototype.jsはRailsコマンドを使用してアプリケーションを作成した際のディレクトリに含まれていますので、コピーしていません。必要な場合はこちらのURL(http://prototypejs.org/)より入手してください)。
なお、本稿執筆時点ではjester 1.5が最新ですが、ここではjester 1.3を使用しています(jester 1.5での動作確認はしていませんのでご留意ください)。また、ObjTree.jsについては、Jester 1.3のアーカイブに含まれるファイルを使用しても、下記リンク先にある最新のObjTree.jsのファイルを使用しても、どちらも問題ありません。
以下のURLよりファイルをダウンロード・展開します。
- jester.js   
 http://giantrobots.thoughtbot.com/assets/2007/6/8/jester-1.3_1.zip
- ObjTree.js 
 http://www.kawa.net/works/js/xml/objtree.html
Jesterのアーカイブを展開したら、jester.jsと ObjTree.jsをC:\demo\public\javascriptsへコピーします。
レイアウトファイルの編集
レイアウトファイル、C:\demo\app\views\layouts \movies.html.erbを編集し、Jesterを使う際に必要な3つのスクリプトファイルを追記します(サンプル2)。
サンプル2 レイアウトファイルにJester関連の記述を追加<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
       "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<script type="text/javascript" src="/javascripts/prototype.js"></script>
<script type="text/javascript" src="/javascripts/ObjTree.js"></script>
<script type="text/javascript" src="/javascripts/jester.js"></script>
<head>
  <meta http-equiv="content-type" content="text/html;charset=UTF-8" />
  <title>Movies: <%= controller.action_name %></title>
  <%= stylesheet_link_tag 'scaffold' %>
</head>
<body>
<p style="color: green"><%= flash[:notice] %></p>
<%= yield  %>
</body>
</html>
Webサーバの再起動
Webサーバ(WEBrick)を再起動します(リスト7)。
リスト7 Webサーバの再起動C:\demo>ruby script\server
これで準備完了です。では再度Firebugを起動し、JavaScript環境、JesterをFirebug上で体験してみましょう。
modelクラスの宣言
まずは使用するモデルを定義します。Firebugの「コンソール」ボタンをクリックし、最下部の入力コンソールにリスト8のように入力し、リターンキーをクリックします(図5)。
リスト8 モデル定義Base.model("movie")モデル名の単数形movieと複数形moviesの変化は暗黙的に行えます。
図5 レイアウト表示
Jesterは、本稿執筆時点での最新バージョン1.3からJSONをサポートしています。JSONとは、JavaScript Object Notationの略で、XMLなどと同様にテキストベースのデータフォーマットです。XMLのような冗長な表現がなく、簡潔に構造化されたデータを記述できる点が特徴です。Jesterを利用すると、JSONも簡単に利用できます。
JSONを使うには、コントローラファイルの各種アクションにJSONフォーマットを追加します。 C:\demo\app\controllers\movies_controller.rbファイルを開き、リストAのようにJSONの記述を追加し、コントローラの設定を反映させるためにWebサーバを再起動します。
リストA コントローラファイルにJSONを追加    respond_to do |format|
      format.html # index.html.erb
      format.xml  { render :xml => @movies }
   format.json  { render :json => @movies }
    end
    
      最後にモデルをJSONフォーマットで宣言し、findします(リストB)。
リストB モデルの定義  Base.model("movie",{format: "json"})
  c=movie.find(124)  
      図 JSONデータの取得
 
      
    |  | 3/5 |  | 
FirebugでRESTfulなDBアプリ完全攻略!!
コラム2:Webクエリを使用して、Excelからリソースへアクセスする
 Page 3
 Page 3・Jesterの準備
レイアウトファイルの編集|Webサーバの再起動|modelクラスの宣言
コラム3:JesterのJSONサポート
CRUDの実行2(Read)
CRUDの実行4(Delete)
|  | DB2でさくさく実現するRESTfulなDBアプリ | 
- Oracleライセンス「SE2」検証 CPUスレッド数制限はどんな仕組みで制御されるのか (2017/7/26)
 データベース管理システムの運用でトラブルが発生したらどうするか。DBサポートスペシャリストが現場目線の解決Tipsをお届けします。今回は、Oracle SE2の「CPUスレッド数制限」がどんな仕組みで行われるのかを検証します
- ドメイン参加後、SQL Serverが起動しなくなった (2017/7/24)
 本連載では、「SQL Server」で発生するトラブルを「どんな方法で」「どのように」解決していくか、正しい対処のためのノウハウを紹介します。今回は、「ドメイン参加後にSQL Serverが起動しなくなった場合の対処方法」を解説します
- さらに高度なSQL実行計画の取得」のために理解しておくべきこと (2017/7/21)
 日本オラクルのデータベーススペシャリストが「DBAがすぐ実践できる即効テクニック」を紹介する本連載。今回は「より高度なSQL実行計画を取得するために、理解しておいてほしいこと」を解説します
- データベースセキュリティが「各種ガイドライン」に記載され始めている事実 (2017/7/20)
 本連載では、「データベースセキュリティに必要な対策」を学び、DBMSでの「具体的な実装方法」や「Tips」などを紹介していきます。今回は、「各種ガイドラインが示すコンプライアンス要件に、データベースのセキュリティはどのように記載されているのか」を解説します
|  | |
| 
 | |
|  | 

 







