✨
Laravel 12 で routes/api.phpを追加する方法【手順まとめ】
Laravel 12 では、従来存在していた routes/api.php がデフォルトでは廃止されています。
追加すれば、これまでと同様に API 専用のルートファイルを使うことが可能です。
✅ なぜ routes/api.php が無くなったの?
Laravel 12 ではルーティングが bootstrap/app.php → Application::configure() によって明示的に指定される形に変わったため、使いたいルートファイルは自分で指定する必要があるようです。
🚀 追加手順まとめ
🔹 Step 1: routes/api.php を作成
touch routes/api.php
<?php
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\NoteController;
Route::apiResource('notes', NoteController::class);
🔹 Step 2: bootstrap/app.php に api ルートを読み込む設定を追加
Laravel 12 の bootstrap/app.php はこのようになっています:
return Application::configure(basePath: dirname(__DIR__))
->withRouting(
web: __DIR__.'/../routes/web.php',
commands: __DIR__.'/../routes/console.php',
health: '/up',
)
この withRouting() の中に、以下の1行を追加:
api: __DIR__.'/../routes/api.php',
✅ 修正後の例:
return Application::configure(basePath: dirname(__DIR__))
->withRouting(
web: __DIR__.'/../routes/web.php',
api: __DIR__.'/../routes/api.php',
commands: __DIR__.'/../routes/console.php',
health: '/up',
)
🔹 Step 3: ルーティング確認
以下コマンドで /api プレフィックスが付いたルートが追加されていることを確認できます:
php artisan route:list
結果の例:
GET|HEAD api/notes .......... App\Http\Controllers\NoteController@index
POST api/notes .......... App\Http\Controllers\NoteController@store
...
今まで通り api.php を使ったルーティングが可能に
これで Laravel 12 でも、
GET /api/notesPOST /api/notesPUT /api/notes/{id}DELETE /api/notes/{id}
などの RESTful APIルートが routes/api.php に書けるようになります!
Discussion