LoginSignup
1
0

More than 5 years have passed since last update.

#MVCの挙動~RESTアーキテクチャについて(初心者)

Last updated at Posted at 2017-04-23

MVCの挙動~RESTアーキテクチャについて(初心者)

目的

RAILSチュートリアルの勉強をしていてMVCの挙動〜RESTアーキテクチャについてまとめておきたいと思ったから

MVCの挙動

スクリーンショット 2017-04-23 13.35.32.png

前提:scaffoldでUsersリソースのコードを生成

  1. ブラウザから「/users」というURLのリクエストをRailsサーバーに送信する。
  2. 「/users」リクエストは、Railsのルーティング機構 (ルーター) によってUsersコントローラ内のindexアクションに割り当てられる。
  3. indexアクションが実行され、そこからUserモデルに、「すべてのユーザーを取り出せ」(User.all)と問い合わせる。
  4. Userモデルは問い合わせを受け、すべてのユーザーをデータベースから取り出す。
  5. データベースから取り出したユーザーの一覧をUserモデルからコントローラに返す。
  6. Usersコントローラは、ユーザーの一覧を@users変数 (@はRubyのインスタンス変数を表す) に保存し、indexビューに渡す。
  7. indexビューが起動し、ERB (Embedded RuBy: ビューのHTMLに埋め込まれているRubyコード) を実行して HTMLを生成 (レンダリング) する。
  8. コントローラは、ビューで生成されたHTMLを受け取り、ブラウザに返す

詳細メモ
最初にブラウザからのリクエストを確認。
このリクエストは、アドレスバーにURLを入力したりリンクをクリックした時に発生。
リクエストはRailsルーティングに到達し (②)、ここでURLに基づいて適切なコントローラのアクションに割り当てられる (ディスパッチ)。ユーザーからリクエストされたURLをUsersリソースで使用するコントローラのアクションに割り当てる (マッピングする) コードは、routes.rbに記載。 (マッピングするコードはRailsのルーティング設定ファイル (config/routes.rb) に書く)Railsではconfig/routes.rbで、URLとアクションの組み合わせ を効率よく設定していく。

RESTアーキテクチャについて

REST : REpresentational State Transfer

Usersリソースが提供するRESTfulなルート

HTTPリクエスト URL アクション 用途
GET /users index すべてのユーザーを一覧するページ
GET /users/1 show id=1のユーザーを表示するページ
GET /usersnew new 新規ユーザーを作成するページ
POST /users create ユーザーを作成するアクション
GET /users/1/edit edit id=1のユーザーを編集するページ
PATCH /users/1 update id=1のユーザーを更新するアクション
DELETE /users/1 destroy id=1のユーザーを削除するアクション

REpresentational State Transferの略。 RESTは、インターネットそのものやWebアプリケーションなどの、分散・ネットワーク化されたシステムやアプリケーションを構築するためのアーキテクチャのスタイルの1つ。
RailsアプリケーションにおけるRESTとは、アプリケーションを構成するコンポーネントを「リソース」としてモデル化することを指す。 これらのリソースは、リレーショナルデータベースの作成/取得/更新/削除 (Create/Read/Update/Delete: CRUD) 操作と、4つの基本的なHTTP requestメソッド (POST/GET/PATCH/DELETE) の両方に対応している。

Rails開発者にとっては、RESTfulなスタイルを採用することで、作成すべきコントローラやアクションの決定が楽になる。
作成(C)・取得(R)・更新(U)・削除(D)を行うリソースだけでアプリケーション全体を構成することも可。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0