“初学者向け基礎知識”
MVCにおけるルーティングについて
ここではルーティングの意味と、MVC各機能の詳細について触れます。
大まかな概要部分については、下記の記事でまとめました。
https://qiita.com/TechOtome/items/bb7886fa9fcb7e0a5c18
MVCの処理の流れ
説明の前に
ここでは、Ruby on Railsを用いたMVCの記述を紹介しています。
・Ruby: プログラミング言語の一つ。記述がシンプルで分かりやすいことから人気。大きなWEBアプリーケーションにも小さなプログラムにも対応できる。
・Ruby on Rails: Rubyで作られた”フレームワーク”のこと。
・フレームワーク:WEBアプリを作成する上で必要なツールを準備する必要があるが、
フレームワークは既に”必要となる作業やリソース”を用意している。簡潔に言えば、フレームワークを使って開発した方が作業が減って楽。
ルーティングについて
一言で書くと
”クライアントからのリクエストの処理を振り分ける。”
仮にユーザーが”A.com”というURLをクリックしたら、”A”というページを表示する(レスポンスとして返す)ように処理を振り分けます。
Twitterであれば「新しいツイートをする」「プロフィール画面を表示する」「フォロワー一覧を見る」「フォロワーのツイート一覧を見る」などなど。さまざまな処理がありますが、これらは全て一度ルーティングにリクエストが送られて、どのような処理をするのか振り分けてから、コントローラーからレスポンスが送られてユーザーが受け取ることができます。
実例)ルーティングでトップページを見るには?
リクエストと言っても、具体的な中身がイメージしにくいと思います。
例えば”Tweet”というアプリがあって、そのトップページを見たいというリクエストがあった場合のルーティングは下記の記述になります。
get ’/tweets’, to: ’tweets#index’
上記の記述は3つに分けることができます。
またそれぞれの意味も一緒に記述します。
・get →HTTPメソッドの”GET”
・/tweets →URIパターン(URIとURLは別のものですが、WEBページのアドレスではURIもURLも同じ意味を指します。)
(※URI解説参照:
https://webtan.impress.co.jp/e/2010/03/09/7539)
・tweets#index →リクエストの行き先=tweetsというコントローラ名のindexアクション
ルーティングでは、リクエストで”HTTPメソッド”と”URI”パターンを受け取りリクエストの行き先を記述します。
HTTPメソッド ‘URIパターン’, to ‘コントローラー名#アクション名’
HTTPメソッドとアクションとは?
ここで、MVCの記述における重要な2つの用語を簡潔にまとめます。
1.HTTPメソッド
HTTPメソッド:HTTP通信の中で行いたい処理の種類のこと。HTTPリクエストメソッドとも言う。8つ存在する。
HTTP通信:WEBアプリはインターネットを通じて利用することができる。その時のデータの送受信の通信方法をHTTP通信と呼ぶ。
2.アクション
アクション:MVCにおけるコントローラー内の処理の種類のことを言う。コントローラーではルーティングから受け取ったリクエストに対応する処理をする。
終わりに
MVCのメリットの一つに「処理の記述が整理されている」点がありますが、このようにアクション名でどんな処理をするのかが理解できます。
MVCを使ったアプリ開発では、HTTPメソッドとアクション名を理解することがとても重要です。