API routes in routes/api.php auto-return JSON.
API Resources
Transform models: php artisan make:resource PostResource
API routes in routes/api.php auto-return JSON.
Transform models: php artisan make:resource PostResource
Route::apiResource("posts", PostController::class); return response()->json($posts, 200); return PostResource::make($post); return PostResource::collection($posts);
<?php // routes/api.php use App\Http\Controllers\Api\PostController; Route::prefix("v1")->group(function () { Route::get("/posts", [PostController::class, "index"]); Route::post("/posts", [PostController::class, "store"]); Route::middleware("auth:sanctum")->group(function () { Route::get("/user", fn () => request()->user()); Route::put("/posts/{post}", [PostController::class, "update"]); Route::delete("/posts/{post}", [PostController::class, "destroy"]); }); }); // Returns JSON Route::get("/health", function () { return response()->json([ "status" => "ok", "time" => now(), ]); });
Create an API resource for User.
class UserResource extends JsonResource {
public function toArray($request) {
return ["id" => $this->id, "name" => $this->name];
}
}
Where are API routes defined?
API routes are in routes/api.php.
Resources provide consistent JSON structure, conditional inclusion, and pagination support.