API Resource dan Resource collection di laravel 5

halo gan. setelah kita bahas crud di laravel ayo kita bahas api resource dan resource collection

API Resource

API resource ini memudahkan kalian dalam membuat response json untuk aplikasi client dengan memanfaatkan model. karena kita hanya perlu membuat api resource dan mengimplementasi nama classnya di setiap response json kita. Itu lebih memudahkan daripada kita mengetik code yang sama di setiap fungsi yang berbeda.

Resource digunakan untuk api response yang berbentuk json object seperti ini

"data": {
"boxes_id": 1,
"box_name": "MG42",
"description": "lorem ipsum dolor sit amet",
"author": "German",
"created_at": {
"date": "2018-08-23 03:31:10.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"updated_at": {
"date": "2018-08-23 03:31:19.000000",
"timezone_type": 3,
"timezone": "UTC"
}
}

contoh sederhana cara membuat api resource

php artisan make:resource Boxes

maka akan secara otomatis membuat folder resource di dalam folder http. dan akan terbuat file resource dengan nama User, lalu kita ubah seperti di bawah ini

setelah itu kita buat fungsi untuk membuat API nya di controller. tambahkan sebuah fungsi di controller seperti contoh:

setelah kita membuat fungsi seperti diatas kita daftarkan fungsi tersebut di router api.php

Route::get('get-box/{box_id}' , 'BoxesController@  getOneBoxData');

setelah itu kita coba url nya di postman atau aplikasi lain.

Resource Collection

resource collection adalah kumpulan kumpulan dari resource. bisa dibilang kita menggunakan resource Collection untuk data berupa list array seperti ini

"data": [
{
"boxes_id": 1,
"box_name": "MG42",
"description": "lorem ipsum dolor sit amet",
"author": "German",
"created_at": "2018-08-23 03:31:10",
"updated_at": "2018-08-23 03:31:19"
},
{
"boxes_id": 2,
"box_name": "RPG-7",
"description": "lorem ipsum dolor sitamet",
"author": "USSR",
"created_at": "2018-08-23 03:31:40",
"updated_at": "2018-08-23 03:31:41"
}
]

Contoh cara membuat Resource Collection

php artisan make:resource BoxCollection --collection

maka akan terbuat file di resource secara otomatis. lalu kita ubah seperti dibawah ini

lalu kita pakai class tersebut di controller

dan semua berhasil di cek. terimakasih

Selanjutnya adalah Error Handling