Laravel やっと理解したweb.phpとapi.phpの違い

Laravelのweb.phpとapi.phpの違い
  • URLをコピーしました!

Laravelにおけるweb.phpapi.phpは、アプリケーションのルーティングファイルであり、それぞれ異なる種類のリクエストを処理するために使用されます。これらのファイルは、ルートの定義に使用されるが、異なる目的とミドルウェアを持っています。

目次

web.php

web.phpルートファイルは、ウェブブラウザからのリクエストを処理するために使用されます。ここに定義されたルートは、セッション状態、CSRF(クロスサイトリクエストフォージェリ)保護、クッキー暗号化など、典型的なウェブアプリケーションで必要とされるミドルウェアを自動的に適用します。これらのルートは、主にHTMLビューを返すために使用され、ユーザー認証、フォームの送信、CSRF保護が必要なウェブページのリクエストに適しています。

Route::get('/home', function () {
    return view('home');
});

この例では、/home URLにアクセスしたときに、homeビューを返します。このルートはweb.phpに定義されているため、ウェブアプリケーションのセッションとCSRF保護が自動的に適用されます。

api.php

一方、api.phpルートファイルは、APIリクエストを処理するために使用されます。これらのルートには、web.phpルートに自動的に適用されるセッションやビュー関連のミドルウェアが適用されません。代わりに、api.phpに定義されたルートは通常、トークンベースの認証などのAPIミドルウェアを使用し、JSONなどのデータ形式でレスポンスを返します。これらのルートは、外部のアプリケーションやサービスからのリクエストに適しています。

Route::middleware('auth:api')->get('/user', function (Request $request) {
    return $request->user();
});

この例では、/userエンドポイントにアクセスした際に、認証済みのユーザー情報を返します。このルートはapi.phpに定義されているため、APIリクエスト用の認証ミドルウェアが適用されます。

まとめ

  • web.phpは、セッション、CSRF保護などのウェブアプリケーション特有の機能を必要とするルートに使用されます。
  • api.phpは、トークン認証やステートレスなリクエストを処理するAPIエンドポイントに使用されます。

適切なルーティングファイルを使用することで、LaravelアプリケーションはウェブページリクエストとAPIリクエストを効果的に区別し、適切に処理することができます。

Laravelのweb.phpとapi.phpの違い

この記事が気に入ったら
いいねしてね!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次