1. Pengertian CRUD RESTful API di Laravel
CRUD RESTful API adalah implementasi dari operasi dasar Create, Read, Update, dan Delete pada data melalui API (Application Programming Interface) yang mengikuti prinsip-prinsip REST (Representational State Transfer). Laravel memudahkan pembuatan API ini dengan menyediakan route, controller, dan model yang terstruktur dengan baik.
2. Langkah-langkah Membuat CRUD RESTful API di Laravel
1. Membuat Route API
Rute API didefinisikan di file routes/api.php. Setiap operasi CRUD akan dipetakan ke HTTP method seperti GET, POST, PUT, dan DELETE.
Contoh:
phpCopy code// routes/api.php
Route::get('users', [UserController::class, 'index']); // Read
Route::post('users', [UserController::class, 'store']); // Create
Route::get('users/{id}', [UserController::class, 'show']); // Read (single item)
Route::put('users/{id}', [UserController::class, 'update']); // Update
Route::delete('users/{id}', [UserController::class, 'destroy']); // Delete
2. Membuat Controller API
Controller API menangani logika CRUD dan mengembalikan data dalam format JSON. Gunakan php artisan make:controller untuk membuat controller.
Contoh:
phpCopy code// app/Http/Controllers/UserController.php
namespace App\Http\Controllers;
use App\Models\User;
use Illuminate\Http\Request;
class UserController extends Controller
{
// Read all users
public function index()
{
return response()->json(User::all()); // Mengembalikan semua data
}
// Create a new user
public function store(Request $request)
{
$validated = $request->validate([
'name' => 'required',
'email' => 'required|email|unique:users,email',
]);
$user = User::create($validated); // Menyimpan data baru
return response()->json($user, 201); // Menampilkan data baru
}
// Read a single user by ID
public function show($id)
{
$user = User::findOrFail($id); // Mencari data berdasarkan ID
return response()->json($user); // Menampilkan data user
}
// Update an existing user
public function update(Request $request, $id)
{
$validated = $request->validate([
'name' => 'required',
'email' => 'required|email|unique:users,email,' . $id,
]);
$user = User::findOrFail($id);
$user->update($validated); // Memperbarui data
return response()->json($user); // Menampilkan data yang diperbarui
}
// Delete a user
public function destroy($id)
{
$user = User::findOrFail($id);
$user->delete(); // Menghapus data
return response()->json(null, 204); // Menampilkan status success tanpa body
}
}
3. Menggunakan Model
Model digunakan untuk berinteraksi dengan tabel database. Pastikan model memiliki properti yang sesuai dengan kolom di database.
Contoh:
phpCopy code// app/Models/User.php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class User extends Model
{
use HasFactory;
protected $fillable = ['name', 'email']; // Menentukan kolom yang dapat diisi
}
3. Menjalankan API CRUD
Setelah route dan controller dibuat, API CRUD dapat diakses menggunakan tools seperti Postman atau Insomnia untuk menguji:
- GET
http://localhost:8000/api/users→ Mendapatkan daftar semua user. - GET
http://localhost:8000/api/users/{id}→ Mendapatkan user berdasarkan ID. - POST
http://localhost:8000/api/users→ Menambahkan user baru. - PUT
http://localhost:8000/api/users/{id}→ Memperbarui user berdasarkan ID. - DELETE
http://localhost:8000/api/users/{id}→ Menghapus user berdasarkan ID.
4. Autentikasi API (Opsional)
Untuk melindungi API, Anda bisa menambahkan autentikasi menggunakan Laravel Passport atau Sanctum untuk mengelola token autentikasi API.
Ringkasan:
- Create: Menambah data dengan
POSTrequest. - Read: Mengambil data dengan
GETrequest. - Update: Memperbarui data dengan
PUTrequest. - Delete: Menghapus data dengan
DELETErequest.
Laravel menyediakan cara yang sangat sederhana dan terstruktur untuk membangun RESTful API dengan CRUD menggunakan routes, controllers, dan models.
Referensi Lainnya :
- https://santrikoding.com/tutorial-restful-api-laravel-11-4-menampilkan-data-dari-database?authuser=0