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からリソースへアクセスする
・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」などを紹介していきます。今回は、「各種ガイドラインが示すコンプライアンス要件に、データベースのセキュリティはどのように記載されているのか」を解説します
|
|