Ruby on Railsをサーバーサイドに使い、ビューにCurlを使ったRIAアプリケーションの開発です。今回はリッチクライアント版のCRUDアプリを作成します。
はじめに
前回はRuby on RailsのScaffold機能で作ったテーブルに対してデータのCRUD(作成・読み出し・更新・削除)ができるWebアプリを作りました。今回は下の画面のようなCurlを使ったリッチクライアント版のCRUDアプリを作成してみましょう。
また、先日Curl Ver.7がリリースされたましたので今回からVer.7を使います。実行環境(RTE)、IDEをダウンロード・インストールしてください。
前回の記事
Ruby on Rails とリッチクライアントのインターフェース
前回のScaffoldの生成したコードの説明でも少し触れたように、Ruby on Railsはたいへんリッチクライアントと相性の良い設計になっています。
データフォーマット
Ruby on Railsは通常のHTML以外にXMLフォーマットのデータを出力できます。またXMLだけではなく、以下のように1行コードを追加するだけでJSONフォーマットのデータも簡単に出力できます。
def index
@players = Player.all
respond_to do |format|
format.html # index.html.erb
format.xml { render :xml => @players }
format.json { render :json => @players } # ← この行を追加
end
end
さらに出力だけなくデータの受け取りも、通常使われるapplication/x-www-form-urlencodedやmultipart/form-dataだけでなく、XML、JSONフォーマットのデータもプログラムを変更する事なく使用できます。
REST
Ruby on RailsのコントローラーはREST(Representational State Transfer)原則に従っています。RESTではテーブル等のリソースをURLで一意に指定し、そのデータをHTTPメッソドのPOST、GET、 PUT、DELETEを使って、作成/読み出し/更新/削除できるなっています。
| URL | メソッド | 操作 |
|---|---|---|
| http://localhost:3000/players | GET | playesテーブルの一覧 |
| http://localhost:3000/players/123 | GET | id=123データの読み出し |
| http://localhost:3000/players | POST | 新規データの作成 |
| http://localhost:3000/players/123 | PUT | id=123データの更新 |
| http://localhost:3000/players/123 | DELETE | id=123データの削除 |
また、JSONフォーマットで情報を操作する場合は次のようなURLになります。
| URL | メソッド | 操作 |
|---|---|---|
| http://localhost:3000/players.json | GET | playesテーブルの一覧 |
| http://localhost:3000/players/123.json | GET | id=123データの読み出し |
| http://localhost:3000/players.json | POST | 新規データの作成 |
| http://localhost:3000/players/123.json | PUT | id=123データの更新 |
| http://localhost:3000/players/123.json | DELETE | id=123データの削除 |
このようなシンプルな考え方により、リッチクライアント側からのサーバーアクセスを統一的に操作でき、クライアント側のソフトをより簡潔にしています。
この記事は参考になりましたか?
- この記事の著者
-
吉田裕美(ヨシダユウミ)
有限会社 EY-Office 取締役CADのベンチャー企業でCADのコア部分や図面管理システムなどの開発に従事した後、独立しJava,Ruby,PerlでWebアプリを中心に開発してきた。現在は殆どの開発はRuby on Rails。ここ数年はソフトウェアエンジニアの教育に興味をもち、従来の知識偏重な教育ではなく現実の問題を解決できるエンジニアを育てる教育に注力している。またLisp等に関心...
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
【AD】本記事の内容は記事掲載開始時点のものです 企画・制作 株式会社翔泳社
この記事は参考になりましたか?
この記事をシェア

