Tutorial Restful API Laravel 11 #3 : Membuat API Resources


Tutorial Restful API Laravel 11 #3 : Membuat API Resources

Halo teman-teman semuanya, pada kesempatan kali ini kita semua akan belajar bersama-sama bagaimana cara membuat API Resources di dalam Laravel 11.

API Resources ini akan kita gunakan untuk mengubah data dari Model menjadi format JSON dengan cepat dan mudah.

SELENGKAPNYA : https://laravel.com/docs/11.x/eloquent-resources

Langkah 1 - Membuat API Resources

Silahkan teman-teman jalankan perintah berikut ini di dalam terminal/CMD dan pastikan sudah berada di dalam project Laravel-nya.

php artisan make:resource PostResource

Jika perintah di atas berhasil dijalankan, maka kita akan mendapatkan 1 file baru yang berada di dalam folder app/Http/Resources/PostResource.php.

Langkah 2 - Custom Response

Sebenarnya, secara bawaan API Resource yang telah digenerate sudah bisa langsung digunakan, tapi karena kita akan menyesuaikan format JSON yang diinginkan, maka kita perlu melakukan sedikit modifikasi di dalam file tersebut.

Silahkan teman-teman buka file app/Http/Resources/PostResource.php, kemudian ubah semua kode-nya menjadi seperti berikut ini.

app/Http/Resources/PostResource.php

<?php

namespace App\Http\Resources;

use Illuminate\Http\Request;
use Illuminate\Http\Resources\Json\JsonResource;

class PostResource extends JsonResource
{
    //define properti
    public $status;
    public $message;
    public $resource;

    /**
     * __construct
     *
     * @param  mixed $status
     * @param  mixed $message
     * @param  mixed $resource
     * @return void
     */
    public function __construct($status, $message, $resource)
    {
        parent::__construct($resource);
        $this->status  = $status;
        $this->message = $message;
    }

    /**
     * toArray
     *
     * @param  mixed $request
     * @return array
     */
    public function toArray(Request $request): array
    {
        return [
            'success'   => $this->status,
            'message'   => $this->message,
            'data'      => $this->resource
        ];
    }
}

Dari perubahan kode di atas, pertama kita menambahkan 3 properti, yaitu:

//define properti
public $status;
public $message;
public $resource;

Properti ini digunakan untuk menyimpan status, pesan, dan data yang akan dikirimkan dalam respons JSON.

Kemudian kita buat method _construct yang menerima 3 parameter, yaitu $status, $message dan $resource. Konstruktor ini akan dipanggil untuk menginisialisasi nilai dari properti $status dan $message dengan nilai yang diberikan oleh controller nantinya.

public function __construct($status, $message, $resource)
{
    parent::__construct($resource);
    $this->status  = $status;
    $this->message = $message;
}

Setelah itu, di dalam method toArray kita ubah bagian return-nya, tujuaanya agar mengembalikan format JSON yang sesuai dengan yang dibutuhkan.

Jadi, tujuan dari PostResource ini adalah untuk membuat data dari Model Post ke dalam format JSON yang sesuai dengan kebutuhan, termasuk penambahan informasi status dan pesan tertentu.

Kesimpulan

Pada artikel ini kita telah belajar bagaimana cara membuat API Resources di dalam Laravel 11 dan belajar melakukan kustomisasi response JSON yang akan dibuat oleh API Resource tersebut.

Pada artikel berikutnya, kita semua akan belajar bagaimana cara menampilkan data dari database ke dalam format JSON di Laravel 11.

Terima Kasih



Fika Ridaul Maulayya
Full-Stack Developer, Content Creator and CO-Founder SantriKoding.com

Suka dengan tulisan di SantriKoding? Kamu bisa memberikan dukungan dengan berdonasi atau bagikan konten ini di sosial media. Terima kasih atas dukungan Anda!

KEBIJAKAN KOMENTAR

Saat memberikan komenatar silahkan memberikan informasi lengkap tentang error, seperti: screenshot, link kode, dll. Baca aturan komentar kami