カテゴリ: Laravel 更新日: 2026/02/02

LaravelのAPIルーティング(api.php)とweb.phpの違いを初心者向けにやさしく解説

LaravelのAPIルーティング(`api.php`)と`web.php`の違いを理解しよう
LaravelのAPIルーティング(`api.php`)と`web.php`の違いを理解しよう

先生と生徒の会話形式で理解しよう

生徒

「Laravelを勉強していたら、api.phpとweb.phpというファイルが出てきました。これは何が違うんですか?」

先生

「どちらもルーティングを書く場所ですが、使い道がはっきり分かれています。用途を理解すると迷わなくなりますよ。」

生徒

「API開発では、どちらを使えばいいんでしょうか?」

先生

「API専用ならapi.phpです。画面を表示する通常のWebサイトはweb.phpを使います。」

生徒

「パソコンをほとんど触ったことがなくても理解できますか?」

先生

「郵便物の配達に例えると、とても分かりやすくなります。」

1. そもそもルーティングとは?

1. そもそもルーティングとは?
1. そもそもルーティングとは?

ルーティングとは、どのURLにアクセスされたら、どの処理を行うかを決める仕組みです。 Laravelでは、このルールをまとめて管理します。

たとえば、住所に手紙が届くと郵便配達員が家まで届けてくれます。 URLは住所、ルーティングは配達ルールのようなものです。 正しい住所に、正しい荷物を届けるために必要な仕組みです。

Laravelでは、ルーティング専用のファイルが用意されており、 その代表的なものが web.phpapi.php です。

2. web.phpとは何をするファイルか

2. web.phpとは何をするファイルか
2. web.phpとは何をするファイルか

web.phpは、画面を表示するWebサイト用のルーティングを書く場所です。 ブラウザでアクセスして、HTML画面を表示する場合に使われます。

たとえば、ログイン画面やお問い合わせページなど、 人が目で見て操作するページは、web.phpが担当します。

web.phpのルーティングは、 クッキーやセッションという仕組みが自動で使われます。 セッションとは、利用者の状態を一時的に覚えておく仕組みです。 ログイン状態を保つために使われます。

3. api.phpとは何をするファイルか

3. api.phpとは何をするファイルか
3. api.phpとは何をするファイルか

api.phpは、API専用のルーティングを書く場所です。 画面を表示せず、データだけを返す処理を担当します。

APIは、人ではなくプログラムが利用します。 スマートフォンアプリや別のシステムが、 データを受け取るために使われます。

api.phpに書いたルーティングは、 自動的にURLの先頭に /api が付きます。 これにより、Web用とAPI用のURLが分かりやすく分離されます。

4. web.phpとapi.phpの大きな違い

4. web.phpとapi.phpの大きな違い
4. web.phpとapi.phpの大きな違い

一番大きな違いは、用途と役割です。 web.phpは人が見る画面用、 api.phpはデータをやり取りするAPI用です。

また、api.phpではセッションを使わない設計になっています。 これは、APIが毎回独立して動作するためです。 APIは「毎回必要な情報を渡す」前提で作られます。

web.phpは、ログイン状態を覚える必要があるため、 セッションが有効になっています。 この違いを理解することが、API開発の第一歩です。

5. api.phpに書く基本的なルーティング例

5. api.phpに書く基本的なルーティング例
5. api.phpに書く基本的なルーティング例

ここでは、api.phpに書くシンプルな例を見てみましょう。 APIでは、文字やJSONデータを返すことが多いです。


Route::get('/hello', function () {
    return response()->json([
        'message' => 'こんにちは'
    ]);
});

この例では、APIにアクセスすると、 JSON形式のデータが返ってきます。 画面表示は行われません。


{"message":"こんにちは"}

6. web.phpに書くルーティングの役割

6. web.phpに書くルーティングの役割
6. web.phpに書くルーティングの役割

web.phpでは、HTML画面を表示する処理を書くのが基本です。 ブラウザで直接アクセスされることを前提にしています。

フォームの入力画面や、結果表示ページなど、 ユーザーが操作する部分はweb.phpにまとめます。 APIと役割を分けることで、コードが整理されます。

Laravelでは、最初からこの2つを分けて用意してくれているため、 初心者でも正しい構成を学びやすくなっています。

7. なぜapi.phpとweb.phpを分けるのか

7. なぜapi.phpとweb.phpを分けるのか
7. なぜapi.phpとweb.phpを分けるのか

ルーティングを分ける理由は、 役割を明確にして、管理しやすくするためです。 すべてを一つにすると、後から見たときに混乱します。

APIとWeb画面は、使われ方がまったく違います。 そのため、最初から別々に管理することで、 バグや設定ミスを防ぎやすくなります。

LaravelのAPI開発では、 api.phpを使うという基本ルールを覚えるだけで、 正しい構成に自然と近づけます。

関連記事:
カテゴリの一覧へ
新着記事
New1
Laravel
LaravelでAPIのレスポンスをテストする方法を完全解説!assertJsonで初心者も安心
New2
CodeIgniter
CodeIgniterでRESTful API開発!初心者でもわかる全体構成ガイド
New3
Symfony
Symfonyのコントローラとは?作成・構造・役割を初心者向けにやさしく解説!
New4
Symfony
Symfonyでバリデーションメッセージを多言語対応する方法!初心者でもわかる国際化の基本
人気記事
No.1
Java&Spring記事人気No1
Laravel
Laravelのシングルアクションコントローラとは?使い方と利点
No.2
Java&Spring記事人気No2
Laravel
Laravelで動的パラメータをルートに渡す方法!初心者にもやさしいルートパラメータの使い方入門
No.3
Java&Spring記事人気No3
Laravel
LaravelのBlade構文まとめ!@if @foreach など基本ディレクティブ解説
No.4
Java&Spring記事人気No4
Symfony
Symfonyの依存性注入(DI)とは?コンストラクタでの注入方法を初心者向けに徹底解説
No.5
Java&Spring記事人気No5
Laravel
Laravelでキャッシュを使う方法(ファイル・Redis・Memcached)
No.6
Java&Spring記事人気No6
Laravel
Laravelで名前付きルートを設定する方法!初心者でもわかるroute()関数の使い方
No.7
Java&Spring記事人気No7
Laravel
Laravelのマイグレーション履歴を確認する方法を徹底解説!migrate:statusの使い方
No.8
Java&Spring記事人気No8
Laravel
Laravelでコントローラを作成する方法(artisanコマンド)