Laravel 12 REST API Tutorial: In this guide, we will build a complete REST API using Laravel 12. REST APIs are widely used in modern web applications, especially in the USA, where frontend frameworks like React and mobile apps consume APIs.
This tutorial is beginner-friendly and will help you understand how to create a CRUD (Create, Read, Update, Delete) API step-by-step.
Step 1. Install Laravel 12
composer create-project laravel/laravel laravel-api
Navigate to your project:
cd laravel-api
Step 2. Setup Database
Update your .env file:
DB_DATABASE=laravel_api DB_USERNAME=root DB_PASSWORD=
Step 3. Create Model & Migration
php artisan make:model Post -m
Edit migration file:
public function up()
{
Schema::create('posts', function (Blueprint $table) {
$table->id();
$table->string('title');
$table->text('description');
$table->timestamps();
});
}
Run migration:
php artisan migrate
Step 4. Create Controller
php artisan make:controller Api/PostController --api
Add the following code:
<?php
namespace App\Http\Controllers\Api;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\Models\Post;
class PostController extends Controller
{
public function index()
{
return Post::all();
}
public function store(Request $request)
{
$post = Post::create($request->all());
return response()->json($post, 201);
}
public function show($id)
{
return Post::findOrFail($id);
}
public function update(Request $request, $id)
{
$post = Post::findOrFail($id);
$post->update($request->all());
return response()->json($post);
}
public function destroy($id)
{
Post::destroy($id);
return response()->json(['message' => 'Deleted']);
}
}
Step 5. Add Fillable in Model
protected $fillable = ['title', 'description'];
Step 6. Create API Routes
Edit routes/api.php:
use App\Http\Controllers\Api\PostController;
Route::apiResource('posts', PostController::class);
Step 7. Test API
You can test your API using Postman:
- GET /api/posts
- POST /api/posts
- GET /api/posts/{id}
- PUT /api/posts/{id}
- DELETE /api/posts/{id}
Conclusion
In this tutorial, we created a complete REST API in Laravel 12 with CRUD functionality. This is the foundation for building modern web and mobile applications.
In the next tutorial, we will integrate authentication using Laravel Sanctum.
We always thanks to you for reading our blogs.
Dharmesh Chauhan
(Swapinfoway Founder)Hello Sir, We are brothers origin from Gujarat India, Fullstack developers working together since 2016. We have lots of skills in web development in different technologies here I mention PHP, Laravel, Javascript, Vuejs, Ajax, API, Payment Gateway Integration, Database, HTML5, CSS3, and Server Administration. So you need our service Please Contact Us
Haresh Chauhan
(Co-Founder)We Are Also Recommending You :
- How to Use Google Translate Multi Language In Laravel
- How To Change ENUM DataType Without Losing Data Laravel Migration
- Laravel 6 - QR Code Generator Example
- chunk() Method | Laravel Collection Example
- Laravel One to Many Eloquent Relationship Tutorial With Example
- Laravel pluck method example | Laravel Pluck
- How To Generate Digital Invoice PDF In Laravel Demo
- Laravel 9 Telescope Integration Tutorial
- How To Insert Current Datetime In Database Laravel
- Laravel Intervention Image