Life

Membuat REST API menggunakan Eloquent API Sources

Langkah 5 :

Ganti code model Colleague, yang sekarang dengan code dibawah ini:

Pada code diatas, kita menambahkan rules yang berfungsi untuk validasi ketika kita melakukan aktifitas create dan update, dan property $guarded dengan value [‘id’] yang berfungsi supaya field selain ‘id’ menjadi assignable (dapat kita tambahkan kedalam db).

Baca: Mass Assignment

Selanjutnya kita akan membuat API Resources,

Jadi guys, ada dua jenis Resources, yaitu resources dengan data tunggal, dan collection resource. Untuk selanjutnya Aku akan menyebutnya dengan sebutan Item dan Collection.

Untuk class yang menghandle resource data tunggal akan memakai/meng-extend:

IlluminateHttpResourcesJsonJsonResource

Sedangkan untuk yang bertipe Collection akan meng-extend:

IluminateHttpResourcesJsonResourceCollection

Pertama kita akan membuat Resource Item milik model Colleague:

$ php artisan make:resource ColleagueItem

Kemudian ubah code nya menjadi seperti berikut:

app/Http/Resources/ColleagueItem.php

Kedua kita akan membuat Resource Collection-nya juga:

$ php artisan make:resource ColleagueCollection --collection

Kemudian ubah code nya menjadi seperti berikut:

Langkah 6:

Kita akan menyentuh ColleagueController

Method index() yang menghandle url route api/colleagues, berfungsi untuk menampilkan semua data dari table colleagues,

public function index()
{
return new ColleagueCollection(Colleague::get());
}

Pada method ini kita menggunakan class ColleagueCollection yang sudah kita buat tadi dan mengisi Hasil query dari Colleague::get() sebagai parameter pertamanya.

Method show() berfungsi untuk mengambil satu data berdasarkan field id

public function show(Colleague $colleague)
{
return new ColleagueItem($colleague);
}

Kita langsung memasukkan variable $colleague ke dalam Constructor dari class ColleagueItem yang barusan kita buat tadi. Kemudahan seperti ini berkat Model Binding, Laravel akan langsung otomatis mencari data yang memiliki id yang sama seperti yang kita masukkan di url, dan langsung mengembalikannya berupa satu record lengkap.

Leave a Reply

Pin It on Pinterest

Share This

Share this post with your friends!