Laravel Resources Membantu Kita untuk Mempermudah dalam mengerjakan Backend Api menggunakan Laravel, Beberapa Tips untuk anda yang menggunakan Laravel dalam Membangun Api bisa juga menggunakan ini, kalo menurut saya lebih mudah dan flexible menggunakan ini dibanding Laravel Fractal / Transformer, tetapi terkadang juga memang ada beberapa yang lebih baik menggunakan transformer.
Kali ini saya tidak akan membahas Laravel Transformer atau Laravel Fractal melainkan menggunakan Laravel Api Resources mari kita mulai sekarang.
Disini kita akan membuat table dan Crud Methodnya menggunakan Laravel Api Resources :
php artisan make:migration create_posts_table
Dan Ubah File Tersebut sesuai dengan kebutuhan anda di isi table posts tersebut :
...
public function up()
{
Schema::create('posts', function (Blueprint $table) {
$table->id();
$table->string('title');
$table->string('slug')->unique();
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('posts');
}
...
Lalu kita migrate table posts
ke database :
php artisan migrate
dan kita buat juga Controller serta Model dengan menggunakan perintah :
php artisan make:model Post -c
Di file Model kita akan mengubahnya seperti ini :
protected $table = 'posts';
// Silahkan tambahkan field lain yang harus diubah
protected $fillable = ['title', 'slug'];
Perintah diatas akan membuat model Post
dan PostController
dan sekarang kita buat juga untuk Api Resources nya di Laravel dengan menggunakan perintah :
php artisan make:resource PostResource
dan akan menghasilkan file PostResource
Sekarang kita akan edit file PostResource
nya
<?php
namespace App\Http\Resources;
use Illuminate\Http\Resources\Json\JsonResource;
class PostResource extends JsonResource
{
public function toArray($request)
{
// Akan Kita ubah bagian ini
return parent::toArray($request);
}
}
Ubah Menjadi
<?php
namespace App\Http\Resources;
use Illuminate\Http\Resources\Json\JsonResource;
use Carbon\Carbon;
class PostResource extends JsonResource
{
public function toArray($request)
{
// Setelah Diubah, Disini saya akan menampilkan Title, Id, Slug dan Created at Column di database
return [
'id' => $this->id,
'title' => $this->title
'slug' => $this->slug
'created_at' => Carbon::parse($this->created_at)->format('d-m-Y')
];
}
}
Nah Sekarang kita akan Ubah file PostController
yang tadinya seperti ini :
<?php
namespace App\Http\Controllers;
use App\Http\Controllers\Controller;
use App\Http\Resources\PostResource;
use App\Models\Post;
use Illuminate\Http\Request;
class PostController extends Controller
{
public function index()
{
$blog = Post::get();
return PostResource::collection($blog);
}
Dan hasil Response dari Api yang telah kita buat akan menghasilkan Json Format dan siap dikonsumsi oleh Frontend.
Demikian Tips tentang Laravel kali ini ..
Happy Coding...