✨
Laravel 12 で routes/api.phpを追加する方法【手順まとめ】
Laravel 12 では、従来存在していた routes/api.php
がデフォルトでは廃止されています。
追加すれば、これまでと同様に API 専用のルートファイルを使うことが可能です。
routes/api.php
が無くなったの?
✅ なぜ Laravel 12 ではルーティングが bootstrap/app.php
→ Application::configure()
によって明示的に指定される形に変わったため、使いたいルートファイルは自分で指定する必要があるようです。
🚀 追加手順まとめ
routes/api.php
を作成
🔹 Step 1: touch routes/api.php
<?php
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\NoteController;
Route::apiResource('notes', NoteController::class);
bootstrap/app.php
に api ルートを読み込む設定を追加
🔹 Step 2: 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/notes
POST /api/notes
PUT /api/notes/{id}
DELETE /api/notes/{id}
などの RESTful APIルートが routes/api.php
に書けるようになります!
Discussion