Laravel provides excellent tools for building RESTful APIs. In this comprehensive tutorial, we'll create a complete API from scratch, covering everything from basic routing to authentication.
Setting up API Routes
Laravel makes it easy to define API routes using the Route::apiResource method, which automatically creates all the necessary routes for a RESTful API.
group(function () {
Route::apiResource('posts', PostController::class);
Route::apiResource('users', UserController::class);
});
// This creates the following routes:
// GET /api/v1/posts
// POST /api/v1/posts
// GET /api/v1/posts/{post}
// PUT/PATCH /api/v1/posts/{post}
// DELETE /api/v1/posts/{post}
Creating API Controllers
paginate(10);
return response()->json($posts);
}
public function store(Request $request)
{
$validated = $request->validate([
'title' => 'required|string|max:255',
'content' => 'required|string',
'type' => 'required|in:tutorial,code'
]);
$post = Post::create($validated);
return response()->json($post, 201);
}
public function show(Post $post)
{
return response()->json($post->load('author'));
}
}