分1234前回の記事では,Rails2.0の足回りを簡単に概観しました。今回は,実際にRails2.0の機能を利用し,RESTfulなウェブアプリケーションを作ってみたいと思います。RESTとは何かRails2.0の機能を用いて,RESTfulなアプリケーションを作るまえに―RESTとは,いったいなんでしょうか?という問いに対して,正確に答えるには私の知識はこころもとないです。Wikipedia日本語版のRESTの項を引いてみると,「⁠表現可能な状態を転送するもの」と書かれてありますが,これだけ翻訳してもよくわかりませんね。Architectures」です。RESTとはそこでFieldingが提案した,Webのアーキテクチャにおけるいくつかの原則です。Serverプロジェクトを率いています。重要なのは以下の2点ではないかと思われます。ステートレスなクライアントサーバ方式RESTの原則では,HTTPのリクエストに全ての情報を含み,サーバ側に,クライアントの状態を持ちません。この原則は,情報の可視性,アプリケーションの信頼性,スケーラビリティにおいてメリットを持ちます。信頼性,スケーラビリティのもっとも単純な例として,静的なHTMLファイルを想起するとよいかもしれません。デメリットとしては,リクエストに全ての情報を持ってしまうことでデータ送信量が増加し,ネットワークのパフォーマンスの低下の発生が考えられます。Interface)RESTを他のアーキテクチャと区別する中心となる概念が,統一インターフェースです。「⁠統一インターフェース」とは,コンポーネント間のやりとりの全てを,リソースを表すURIと,それにたいするHTTPのメソッドで行いましょう,ということです。インターフェースを統一化することで,アーキテクチャはシンプルになり,コンポーネント間の作用の可視性が増します。Web自体を想起するとよいでしょう。デメリットはフォーマットを統一化するオーバーヘッドによる実行効率の低下です。RESTfulなURIRESTの統一インターフェースに対する,わかりやすいたとえとして以下のものがあります。RESTを文と考える。Methodsは動詞で,URIは名詞である。具体的な例を挙げてみましょう。http://bookmark/links/1⇒削除する(動詞)ブックマーク(名詞)リンク(名詞)1(名詞)この観点からすると,以下のようなURIに矛盾があることがわかります。http://bookmark/links/destroy/1⇒取得する(動詞)ブックマーク(名詞)リンク(名詞)削除(動詞)1(名詞)統一インターフェースとしてのRESTfulなURIとは,URIを名詞と考え,HTTPのメソッドを動詞とした際に自然な形になるものといえます。RESTのイメージだけでもつかんでいただけましたでしょうか?Rails2.0のRESTサポートの優れた点の一つに,それ自体がRESTの問いに対する明快な回答である,という点があります。そのため,RailsのRESTサポートを見ていくことで,RESTの概念を学習することができるという一石二鳥なメリットもあります。Webアプリケーションさてこのあたりで,今回の題材として,ソーシャルブックマークの代名詞となった,del.icio.us風のブックマークアプリケーションをRESTスタイルで作ってみましょう。安易ですが小さなdeliciousということで,その名もminiciousです。それでは早速,railsコマンドでRailsアプリケーションのフォルダを作成します。Rails著者プロフィール鎌田達哉(かまだたつや)SI企業勤務。10年ほど前にはじめて自分で行ったプログラミングはRubyによるものであったが,語ってもにわかには信じてもらえないような紆余曲折を経て現在に至る。現在は,JVM上の言語実装に興味あり。ありがちですが,Scalaにはまり中。2019」を開催しました。DAY1・DAY2の様子を注目セッションとともにお伝えします。LINEのエンジニア3名がイベントに先駆けて見どころを紹介します。コードの安全性・安定性を高める開発サイクル~テスト管理の効率を上げ,脆弱性診断を自動で行う~本連載では,連載「業務を改善する情報共有の仕掛け」を受けつつ,安全性・安定性を加えた開発サイクルについて考えていきます。若者世代から圧倒的な人気を誇るライブ配信&動画投稿コミュニティアプリ「MixChannel」(ミクチャ)の裏側(レコメンドシステムやサーバサイド開発など)について解説していきます。その他の連載CSS3アニメーションでつくるインターフェイス表現CSS3によるアニメーション表現を紹介していきます。その中でも,幅広い読者に応用してもらえるだろうインターフェイスを主なお題とします。MySQL道普請便り本連載では,MySQLを使ったアプリ開発・運用に関するノウハウをご紹介していきます。RecipeUbuntuの強力なデスクトップ機能を活用するための,いろいろなレシピをお届けします。JavaScriptセキュリティの基礎知識JavaScriptに関するセキュリティ上の問題はどこで発生し,どうすれば防ぐことができるのか?について解説していきます。〜システムをきちんと運用するための基礎知識システムは「作って終わり」ではなく,運用の中でさまざまな問題が発生します。問題の発生に備えて事前にどのような対応をしておくべきなのか,問題発生時に何をしなければならないのか,ポイントを解説していきます。きたみりゅうじの聞かせて珍プレーソフトウェア開発の現場で体験したトホホな失敗,思わずうなる珍プレーをきたみりゅうじ氏が四コママンガで紹介。Linuxのメンテナンスの傍ら,Linuxやオープンソースソフトと日々を過ごす著者が,その魅力とつきあい方を,エッセイ風味でお届けします。PRESS特別編集部員,さわやか笑顔のスーパーハカーはまちちゃんとネット大好き14歳わかばちゃんが,毎号,読者の皆さんから寄せられたおたよりを紹介します。皆さんの日頃の悩みにも答えちゃいますよ。]メールでのお知らせメールで次の案内をお送りしております。メールの配信を希望する方は,利用したい項目をチェックしてメールアドレスを入力し,[登録]ボタンをクリックしてください。UPDATES[ほぼ週間に1回]新刊メールマガジン[ほぼ週間に1回]電脳会議の各号案内[ほぼ1ヵ月半に1回]※変更する場合や停止する場合は,登録情報変更ページをご覧ください。※登録いただいたメールアドレスには,そのお知らせ以外,配信いたしません。Ltd.ページ内容の全部あるいは一部を無断で利用することを禁止します。個別にライセンスが設定されている記事等はそのライセンスに従います。