Laravel CRUD RESTful API – Episode 5.2

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 POST request.
  • Read: Mengambil data dengan GET request.
  • Update: Memperbarui data dengan PUT request.
  • Delete: Menghapus data dengan DELETE request.

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
Tags :

Leave a Reply

Your email address will not be published. Required fields are marked *

3 × 3 =

Tutorial Terpopuler

Tutorial Pilihan

Tentang Gurututorku

Gurututorku adalah sebuah kursus online maupun offline yang menyediakan berbagai macam tutorial tentang pemrograman, design, dan multimedia serta artikel teknologi yang tentunya bisa dinikmati dan dipelajari oleh semua orang yang baru ingin belajar dunia IT.

© 2024 – Gurututorku.com | Learning today success tomorrow.