Laravel

Membuat REST API dengan Laravel dari Nol

Dari rute sampai respons JSON yang rapi: kita buat API produk sederhana lengkap dengan validasi.

C Codesakura 1 menit 3 komentar

Daftar isi

REST API adalah cara aplikasi lain (aplikasi mobile, frontend React, atau layanan pihak ketiga) berbicara dengan aplikasimu. Di bagian ini kita membuat API produk sederhana: melihat daftar, menambah, dan menghapus.

Menyiapkan rute

Laravel menyediakan Route::apiResource yang membuat semua rute CRUD sekaligus. Tambahkan di routes/api.php:

use App\Http\Controllers\Api\ProductController;

Route::apiResource('products', ProductController::class);

Membuat controller

Controller cukup mengembalikan model. Laravel mengubahnya menjadi JSON secara otomatis.

public function index()
{
  return Product::latest()->paginate(20);
}

public function store(Request $request)
{
  $data = $request->validate([
    'name' => ['required', 'string', 'max:160'],
    'price' => ['required', 'integer', 'min:0'],
  ]);

  return Product::create($data);
}

Kenapa validasi di awal?

Data yang tidak lolos validasi langsung ditolak dengan kode 422 beserta pesan untuk tiap kolom, jadi kode di bawahnya hanya menerima data yang sudah benar.

Mencoba API

Jalankan server lalu panggil dari terminal:

php artisan serve
curl http://127.0.0.1:8000/api/products
Biasakan mencoba setiap endpoint begitu selesai ditulis. Lebih mudah mencari salah di satu endpoint daripada di sepuluh.

Langkah berikutnya

API ini masih terbuka untuk siapa saja. Di bagian berikutnya kita menambahkan autentikasi token supaya hanya pengguna terdaftar yang bisa menambah produk.

Bagian dari series

Laravel dari Nol
  1. 1Menyiapkan Proyek Laravel Pertamamu
  2. 2Mengenal Routing dan Controller di Laravel
  3. 3Membuat REST API dengan Laravel dari Nol
Bagikan X Facebook WhatsApp Telegram

3 komentar

Masuk dulu untuk ikut berkomentar. Masuk

D

Dewi S.

Ditunggu lanjutannya.

R

Rizky A.

Penjelasannya runtut, langsung saya coba dan jalan. Terima kasih!

C

Codesakura Penulis

Senang bisa membantu. Kalau ada yang macet, tulis saja di sini.

Tutorial terkait

Laravel

Mengenal Routing dan Controller di Laravel

1 menit Series · Bagian 2 dari 3

Laravel

Menyiapkan Proyek Laravel Pertamamu

1 menit Series · Bagian 1 dari 3

Laravel

Upload File yang Aman di Laravel

1 menit