2009年6月18日木曜日

ReSTfulについて

今回はrubyでのURLマッピングの方法とRESTフルの考え方について勉強してみた。

RESTフルっていうのは正直初めて聞いた言葉で当初検討もつかなかった。
同じ会社の方からのメールの内容に書いてあったのだが全くわけが分からなかったのでちょっち調べてみた。

まず、そもそも、RESTってなに??ってところから調べていったわけだが、ここに分かりやすく書かれていた。

要は、WEBページでのデータの取得・登録・更新・削除の処理をURIとHTTPメソッドのGET、POST、PUT、DELETEを適切に使って行う方法ということらしい。

そういえば、railsでページ遷移を行う際に正しくURIを記述しているにも拘らず、正常にページ遷移できないということがあり、 GETをPUTにしたらアクセスできたなんてことがあった。

現在、一般に利用されているページ遷移の方法はURLとGETかPOSTを利用する方法が主である。
そして、俺もrubyを学習するまで変数の受け渡しは GET、POSTで行うものだと思っていたし、GETとPOSTの違いについてさほど深く考えてすらいなかった。
HTTPメソッドの利用方法は本来以下のようにして行われるべきもので、現在のようにあらゆる処理に対してGETやPOSTでのアクセスを許可するべきではないらしい・・・。
ちょうど、IPアドレス(URI)とポート番号(HTTPメソッド)のような仕組みだ。

メソッド役割
GETリソースの取得。GETでのアクセスはリソースの内容に影響を与えない。
POSTリソースの新規作成
PUT既存のリソースのアップデート
DELETEリソースの削除

RESTとはURIが指し示すリソース(つまり、htmlファイル・画像)に対して、HTTPメソッドを本来の意味で利用することで、そのリソースに対して何をしたいのか、を指定できるようにしようと提唱しているのだ。
そして、このRESTの考えを忠実に再現することをRESTfulというらしい。
俺はこの考えは好きだ。うまく説明できないが、ある物事を実行するとき何かしら規約・信念をもって取り組むのは決してめんどくさいことではなく分かりやすく、間違いの少ない手法だ。

俺は、rubyの設計哲学であるDRY(Don't Repeat Yourself)や設定より規約(convention over configuration)といった考え方が大好きだ。今回のRESTはこれと似た匂いを感じる。

rails2.0以降はこのRESTfulのシステムが導入されているらしい、なんか面白くなってきた。

0 件のコメント:

コメントを投稿

このガジェットでエラーが発生しました
このガジェットでエラーが発生しました

どうしようもないクズのアーチャー