Latar Belakang
Sebagai lanjutan dari pembahasan mengenai Eloquent ORM dan relasi data, tahap berikutnya adalah mempelajari implementasi CRUD REST API di Laravel. Setelah memahami bagaimana model berinteraksi dengan database, penting untuk mengetahui bagaimana data tersebut dapat diakses dan dikelola melalui endpoint API. REST API memungkinkan aplikasi berkomunikasi dengan sistem lain secara terstruktur menggunakan HTTP method.
Artikel ini dibuat dengan tujuan untuk mendokumentasikan hasil pembelajaran saya mengenai pembuatan CRUD REST API menggunakan Laravel. Dengan memahami proses ini, saya dapat membangun backend yang mampu menangani permintaan data secara sistematis dan sesuai dengan standar REST.
Konsep Dasar REST API di Laravel
Laravel menyediakan file khusus untuk mendefinisikan route API, yaitu routes/api.php. File ini khusus menangani request yang berkaitan dengan API dan secara default menggunakan prefix /api pada URL-nya.
Perbedaan utama antara web.php dan api.php:
web.php
Untuk route yang menghasilkan view HTML, mendukung session, cookies, dan CSRF protection.
api.php
Untuk route API, tanpa session state (stateless), mendukung rate limiting, dan response dalam format JSON.
Response dari API umumnya menggunakan format JSON. Laravel secara otomatis akan mengubah array atau koleksi data menjadi JSON ketika kita mengembalikannya dari controller.
Membuat Resource Controller
Pada artikel Routing & Controller saya sudah membuat controller resource yang akan digunakan pada saat membuat CRUD di laravel. Namun pada artikel ini saya akan mencontohkan kembali untuk membuat Controller Resource. Kita bisa membuatnya menggunakan perintah berikut:
php artisan make:controller ProductController --resource
Berikut struktur yang dihasilkan:
Mendefinisikan Route API
Setelah controller siap, kita perlu mendaftarkannya di routes/api.php. Laravel menyediakan method apiResource() yang secara otomatis membuat route untuk kelima method di atas.
use App\Http\Controllers\ProductController;
Route::apiResource('products', ProductController::class);
Hanya dengan satu baris kode, kita sudah mendapatkan 5 endpoint berikut:
| Method | URL | Controller Method | Fungsi |
|---|---|---|---|
| GET | /api/products | index | Mengambil semua produk |
| POST | /api/products | store | Menambah produk baru |
| GET | /api/products/{id} | show | Mengambil satu produk |
| PUT/PATCH | /api/products/{id} | update | Mengupdate produk |
| DELETE | /api/products/{id} | destroy | Menghapus produk |
Perhatikan bahwa URL otomatis menggunakan prefix /api karena didefinisikan di file api.php.
Membuat Model
Di artikel sebelumnya saya sudah membuat mengenai migration database, jadi untuk artike ini saya akan melanjutkan ke pembuatan model. Disini saya akan membuat dua model yaitu model product dan model category. Untuk membuat model bisa dengan menjalankan perintah artisan berikut:
Implementasi CRUD
Sekarang kita akan mengimplementasikan CRUD lengkap menggunakan model ProductModel.
Mengambil Semua Data (GET / index)
Method ini mengembalikan semua data produk dalam format JSON dengan status code 200 (OK).
Menambahkan Data (POST / store)
Jika validasi gagal, Laravel otomatis mengembalikan response error. Jika berhasil, data disimpan dan dikembalikan dengan status code 201 (Created).
Menampilkan Satu Data (GET / show)
Jika data tidak ditemukan, API mengembalikan status 404 (Not Found).
Memperbarui Data (PUT / update)
Kata kunci sometimes digunakan agar validasi hanya berjalan jika field tersebut dikirim dalam request (mendukung update parsial/PATCH).
Menghapus Data (DELETE / destroy)
Pengujian Endpoint
Endpoint dapat diuji menggunakan tools seperti Postman.
Contoh Pengujian:
GET /api/products
Method: GET
URL:
http://localhost:8000/api/productsKlik Send → lihat response JSON
POST /api/products
Method: POST
URL:
http://localhost:8000/api/productsBody → raw → JSON
Isi data produk → Klik Send
GET /api/products/1
Method: GET
URL:
http://localhost:8000/api/products/1
PUT /api/products/1
Method: PUT
URL:
http://localhost:8000/api/products/1Body: JSON data yang diperbarui
DELETE /api/products/1
Method: DELETE
URL:
http://localhost:8000/api/products/1
Pastikan untuk selalu memeriksa status code dan struktur response JSON yang dikembalikan.
Hasil Pembelajaran
Melalui pembelajaran ini, saya memahami bahwa implementasi CRUD REST API di Laravel melibatkan pembuatan route API, controller, serta penggunaan model Eloquent untuk mengelola data. Setiap operasi CRUD dipetakan ke HTTP method yang sesuai, seperti GET untuk mengambil data, POST untuk menambahkan data, PUT atau PATCH untuk memperbarui data, dan DELETE untuk menghapus data.
Saya juga mempelajari bagaimana mengembalikan response dalam format JSON agar dapat digunakan oleh aplikasi frontend atau layanan lain. Selain itu, saya memahami pentingnya validasi data serta penanganan error agar API yang dibuat lebih aman dan stabil.
Kesimpulan
Implementasi CRUD REST API di Laravel memberikan pemahaman yang lebih konkret mengenai bagaimana backend bekerja dalam mengelola data. Dengan memanfaatkan routing, controller, dan Eloquent ORM, proses pengolahan data dapat dilakukan secara terstruktur dan efisien.
Pemahaman ini menjadi dasar penting dalam membangun aplikasi berbasis API yang dapat terintegrasi dengan berbagai platform, serta siap dikembangkan dengan fitur yang lebih kompleks di tahap selanjutnya.
Daftar Pustaka
Laravel. (n.d.). HTTP routing. Diakses pada 27 Februari 2026, dari https://laravel.com/docs/routing
Laravel. (n.d.). Controllers. Diakses pada 27 Februari 2026, dari from https://laravel.com/docs/controllers
Laravel. (n.d.). Eloquent: Getting started. Diakses pada 27 Februari 2026, dari https://laravel.com/docs/eloquent
Laravel. (n.d.). Validation. Diakses pada 27 Februari 2026, dari https://laravel.com/docs/validation
Laravel. (n.d.). HTTP responses. Diakses pada 27 Februari 2026, dari https://laravel.com/docs/responses
Niagahoster. (2023). Cara membuat REST API dengan Laravel untuk pemula. Diakses pada 27 Februari 2026, dari https://www.niagahoster.co.id/blog/rest-api-laravel/
Petani Kode. (2022). Tutorial membuat REST API di Laravel. Diakses pada 27 Februari 2026, dari https://www.petanikode.com/laravel-rest-api/
Malas Ngoding. (2022). Membuat REST API dengan Laravel lengkap. Diakses pada 27 Februari 2026, dari https://www.malasngoding.com/category/laravel/
Codepolitan. (2022). Belajar membuat API menggunakan Laravel. Diakses pada 27 Februari 2026, dari https://www.codepolitan.com/