← 用語集一覧へ戻る

ルーティング

Routing
development beginner
URLごとに、どの画面や処理を呼び出すかを対応づける仕組みのこと。Webアプリやサイトの行き先を決める役割を持つ。
ルーティング (Routing)

概要(サマリー)

ルーティングとは、URLごとに、どの画面や処理を呼び出すかを対応づける仕組みのことである。

たとえば /about なら会社概要ページ、/contact ならお問い合わせページを表示する、というように、アクセス先に応じて行き先を振り分ける交通整理の役割を持つ。新しいページや機能を作ったのに画面が開かないときは、ルーティングの設定を追加し忘れていることがよくある。初心者向けには、「URLと画面を結びつける案内板」と考えるとわかりやすい。

詳細解説

ルーティングは「URLと処理の対応表」である

WebサイトやWebアプリでは、ユーザーがURLにアクセスすると、何らかの画面やデータが返される。
しかし、サーバーやアプリはURLを見ただけで自動的に意味を理解しているわけではない。

そこで必要になるのがルーティングである。
ルーティングは、「このURLにアクセスが来たら、この画面を表示する」「このURLなら、この処理を動かす」と決めておく仕組みである。

たとえば、次のような対応がある。

  • / → トップページ
  • /about → 会社概要ページ
  • /contact → お問い合わせページ
  • /products → 商品一覧ページ

このように、URLと行き先を結びつけるのがルーティングの基本である。

なぜルーティングが必要なのか

もしルーティング設定やそれに相当する仕組みがなければ、URLにアクセスされても、どの画面や処理を返せばよいか分からない。
つまりルーティングは、Webアプリの中で「アクセスを受けたあと、どこへ案内するか」を決める土台になっている。

特にアプリでは、表示だけでなく処理の振り分けにも使われる。

  • 一覧ページを表示する
  • 詳細ページを表示する
  • フォーム送信を受け取る
  • APIのデータを返す
  • ログイン処理を動かす

このように、ルーティングは単なるページ遷移ではなく、Web全体の入口整理にも関わっている。

どんなイメージで考えればよいか

初心者向けには、ルーティングを「建物の案内板」や「交通整理」として考えるとわかりやすい。

たとえば大きな施設で、

  • 受付はこちら
  • 会議室はこちら
  • 売店はこちら

と案内板が出ていると迷いにくい。
Webアプリでも同じように、

  • このURLならこのページ
  • このURLならこの処理
  • このURLならこのデータ

という対応関係を決めている。
つまりルーティングは、アクセスしてきた人やデータを正しい場所へ導く道案内の役割をしている。

Controller との関係

サーバーサイドのフレームワークでルーティングを説明するときは、Controller という言葉もよく出てくる。
多くの場合、ルーティングがURLを受け取り、その後にControllerへ処理を渡す流れになっている。

ざっくり言うと、次のような関係である。

  • Routing
    どのURLをどこへ振り分けるか決める
  • Controller
    実際に何を表示するか、どんな処理をするかを担当する

たとえば、/contact へのアクセスが来たら、ContactController の特定メソッドを動かす、といった形で使われる。
このため、ルーティングは「道を決める係」、Controllerは「その先で実務を行う係」と考えると理解しやすい。

Request と Response の流れの中で見るとわかりやすい

ルーティングは、RequestResponse の流れの中で考えると整理しやすい。

  1. ユーザーがURLへアクセスする
  2. ブラウザからRequestが送られる
  3. ルーティングがURLを見て行き先を判断する
  4. Controllerや処理に渡す
  5. 結果としてHTMLJSONなどのResponseを返す

この流れの中で、ルーティングはかなり早い段階で動く。
つまり「アクセスを受け取ったあと、最初に進路を決める役目」と言える。

静的サイトとアプリでの違い

ルーティングは、静的なHTML中心のサイトと、フレームワークを使ったWebアプリで少し見え方が違う。

静的サイトの場合

about.html のように、ファイル構造がそのままURLに近いことが多い。
この場合は、見た目上あまりルーティングを意識しないこともある。

Webアプリの場合

URLと実際のファイル位置が一致しないことがある。
たとえば /products/123 というURLに対して、内部ではControllerが動いてデータベースから情報を取得し、1つのテンプレートで表示していることも多い。

この場合、どのURLでどの処理を動かすかを決めるルーティングが非常に重要になる。

よくある例

たとえば、次のようなルーティングは非常によくある。

  • /login → ログイン画面
  • /logout → ログアウト処理
  • /products → 商品一覧
  • /products/123 → 商品詳細
  • /api/users → ユーザー一覧のAPI

このように、ページ表示にもAPIにもルーティングは使われる。
単なる「画面切り替え」だけの話ではないところがポイントである。

新しいページが表示されない原因になりやすい理由

新しいページを作ったのに表示されないとき、ルーティング設定の不足が原因になることは多い。

たとえば次のような状態である。

  • テンプレートは作った
  • Controllerも作った
  • でもURLとつながっていない

この場合、内部に材料はあるのに、入口が用意されていない状態になる。
そのため、アクセスしても404になったり、意図した画面が開かなかったりする。

つまり、ルーティングは「最後の配線」のような役割でもある。

Redirect や Navigation との違い

ここは混同しやすい。

  • Routing
    URLに来たアクセスを、どの処理や画面へ渡すか決める
  • Redirect
    あるURLから別のURLへ転送する
  • Navigation
    ユーザーが画面内で移動しやすくするためのメニューや導線

ルーティングはアプリ内部の振り分けルールであり、リダイレクトやナビゲーションとは役割が違う。
似た場面で出てくるが、同じ意味ではない。

AI時代にルーティングの理解が重要な理由

AIにWebアプリやサイトを作らせると、画面やコンポーネント自体はかなり速く作れる。
しかし、実際にURLで開けるようにするには、ルーティングの設定が必要になることが多い。

たとえばAIに次のような依頼をすると、ルーティングの話がよく出る。

  • 新しいページを追加して
  • APIエンドポイントを作って
  • 管理画面を追加して
  • 詳細ページを作って

このとき、ルーティングの意味が分かっていないと、

  • 画面はあるのにURLで開けない
  • どこに設定を書くのか分からない
  • Controllerやテンプレートとの関係が見えない
  • AIの説明が理解しづらい

という状態になりやすい。
逆に、「URLと処理を結びつける設定がルーティング」と分かっているだけで、AIの指示や生成コードがかなり読みやすくなる。

より詳しくAIに聞いてみよう

  • ルーティングとは何かを、中学生でもわかるように具体例つきで説明してください。
  • ルーティングと Controller と URL の関係を、初心者向けに整理してください。
  • 新しいページを作ったのに表示されないとき、ルーティングをどう確認すればよいか教えてください。
  • Routing と Redirect と Navigation の違いを、やさしく説明してください。
  • AIコーディングでルーティングの理解が重要になる理由を、具体例つきで説明してください。