Skip to content
Home Tutorials Roadmaps Courses
Log in Join free
Tutorials Laravel API Routes
Laravel Advanced FREE

API Routes

Lesson 2 of 17 Advanced Interactive

API routes in routes/api.php auto-return JSON.

API Resources

Transform models: php artisan make:resource PostResource

Syntax

LARAVEL
Route::apiResource("posts", PostController::class);
return response()->json($posts, 200);
return PostResource::make($post);
return PostResource::collection($posts);
Laravel API Routes
PHP
<?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(),
    ]);
});

Practice

1
Exercise

Create an API resource for User.

Answer
class UserResource extends JsonResource {
    public function toArray($request) {
        return ["id" => $this->id, "name" => $this->name];
    }
}

Quick Quiz

1

Where are API routes defined?

API routes are in routes/api.php.

Interview Questions

Resources provide consistent JSON structure, conditional inclusion, and pagination support.