Tutorial Laravel 12 RESTful API #3 Product Request

Pelajari cara membuat RESTful API menggunakan Laravel 12 dalam tutorial lengkap ini. Mulai dari instalasi, konfigurasi, hingga implementasi dan fitur CRUD, tutorial ini akan membantu Anda memahami konsep API yang efisien dan aman di Laravel 12.

✅ Telah dilihat 315 kali

Rating: 5.00 ⭐

... 12 March 2025, 14:15

Product Request


Form Request, yang merupakan subclass dari Illuminate\Foundation\Http\FormRequest memiliki fungsi yang digunakan untuk validasi data input agar sesuai aturan validasi untuk setiap field yang dikirim. Silakan jalankan perintah berikut untuk membuat ProductRequest.

php artisan make:request ProductRequest

Perintah diatas akan menghasilkan sebuah filde dengan nama ProductRequest.php yang terletak didalam folder app/Http/Requests. Silakan buka file tersebut kemudian ubah menjadi seperti berikut ini:

<?php

namespace App\Http\Requests;

use Illuminate\Foundation\Http\FormRequest;

class ProductRequest extends FormRequest
{
    public function authorize(): bool
    {
        return true; 
    }

    public function rules(): array
    {
        return [
            'name' => 'required|string|max:255',
            'price' => 'required|numeric',
            'description' => 'nullable|string',
            'stock' => 'required|integer|min:0',
        ];
    }
}

Pada kode diatas terdapat class ProductRequest, class ini mewarisi dari FormRequest dan digunakan untuk validasi request saat menambahkan/memperbarui produk.

Authorize


public function authorize(): bool
{
    return true; 
}

Didalam method ini, bertujuan untuk menentukan apakah pengguna diizinkan untuk melakukan request ini. Jika true, maka request dapat diproses. Jika false, request akan diblokir. Method ini bisa kita manfaatkan untuk project yang lebih kompleks, misalnya hanya admin yang boleh membuat produk.

Rules


public function rules(): array
{
    return [
        'name' => 'required|string|max:255',
        'price' => 'required|numeric',
        'description' => 'nullable|string',
        'stock' => 'required|integer|min:0',
    ];
}

Pada Method ini berisi aturan validasi untuk setiap field, seperti aturan pada column name, wajib diisi type data string dan maksimal 255 karakter dst.

Kesimpulan


Dengan menggunakan FormRequest, kode kita bisa lebih rapi & terstruktur dibandingkan menulis validasi secara langsung di controller. Selain itu, form request bisa bersifat reusable/dapat digunakan ulang jika aturan validasi sama di beberapa method atau controller. Pada materi berikutnya, kita akan belajar membuat resource. Resource di Laravel digunakan untuk mengubah data model menjadi format JSON yang lebih terstruktur ketika mengirim respons API. Sampai jumpa pada materi berikutnya.