Back
Syntax
Study
Editor
Mode:
HTML
CSS
JavaScript
PHP
Reset
Run »
HTML / CSS / JS
<?php // routes/api.php — versioned API groups use Illuminate\Support\Facades\Route; Route::prefix('v1')->name('api.v1.')->group(function () { require base_path('routes/api_v1.php'); }); Route::prefix('v2')->name('api.v2.')->group(function () { require base_path('routes/api_v2.php'); }); // app/Exceptions/Handler.php — custom API error responses namespace App\Exceptions; use Illuminate\Foundation\Exceptions\Handler as ExceptionHandler; use Illuminate\Database\Eloquent\ModelNotFoundException; use Illuminate\Auth\AuthenticationException; use Throwable; class Handler extends ExceptionHandler { public function register(): void { $this->renderable(function (ModelNotFoundException $e, $request) { if ($request->expectsJson()) { return response()->json(['message' => 'Resource not found.'], 404); } }); $this->renderable(function (AuthenticationException $e, $request) { if ($request->expectsJson()) { return response()->json(['message' => 'Unauthenticated.'], 401); } }); } }
Result
Open