Tutorial RESTful API Laravel 12 #4 : Menampilkan Data dari Database


Tutorial RESTful API Laravel 12 #4 : Menampilkan Data dari Database

Halo teman-teman semuanya, pada artikel sebelumnya kita telah belajar bagaimana cara membuat API Resources di dalam Laravel 12 dan pada artikel kali ini kita semua akan belajar menampilkan data dari database dalam format JSON menggunakan API Resources.

Langkah 1 - Membuat Controller Product

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

go
php artisan make:controller Api/ProductController

Jika perintah di atas berhasil dijalankan, maka kita akan mendapatkan file baru yang berada di dalam folder app/Http/Controllers/Api/ProductController.php.

Silahkan buka file tersebut, kemudian ubah semua kode-nya menjadi seperti berikut ini.

app/Http/Controllers/Api/ProductController.php

php
<?php namespace App\Http\Controllers\Api; //import model Product use App\Models\Product; use App\Http\Controllers\Controller; //import resource ProductResource use App\Http\Resources\ProductResource; class ProductController extends Controller { /** * index * * @return void */ public function index() { //get all products $products = Product::latest()->paginate(5); //return collection of products as a resource return new ProductResource(true, 'List Data Products', $products); } }

Dari perubahan kode di atas, pertama kita import Model Product terlebih dahulu.

php
//import model Product use App\Models\Product;

Setelah itu, kita import juga API Resource yang sudah kita buat sebelumnya, yaitu ProductResource.

php
//import resource ProductResource use App\Http\Resources\ProductResource;

Di dalam class ProductController kita menambahkan method baru dengan nama index.

csharp
public function index() { //... }

Di dalam method tersebut, kita melakukan get data dari database melalui Model Product.

php
//get all products $products = Product::latest()->paginate(5);

Setelah itu, kita tinggal parsing variable $products di atas ke dalam ProductResource.

php
//return collection of products as a resource return new ProductResource(true, 'List Data Products', $products);

Langkah 2 - Membuat Route Rest API

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

undefined
php artisan install:api

Jika perintah di atas dijalankan, maka akan secara otomatis mengunduh library yang bernama sanctum, tapi tidak akan menggunakan library tersebut untuk saat ini.

Dan sekarang route untuk Rest API sudah tersedia di dalam folder routes/api.php. Silahkan buka file tersebut dan ubah kode-nya menjadi seperti berikut ini.

routes/api.php

php
<?php use Illuminate\Support\Facades\Route; //import controller ProductController use App\Http\Controllers\Api\ProductController; //products Route::apiResource('/products', ProductController::class);

Dari perubahan kode di atas, pertama kita import controller product terlebih dahulu.

php
//import controller ProductController use App\Http\Controllers\Api\ProductController;

Kemudian kita membuat konfigurasi route dengan jenis apiResource, sehingga Laravel otomatis membuat 5 route bawaan untuk CRUD products.

Untuk melihat daftar lengkap route yang dibuat, jalankan perintah berikut di dalam terminal/CMD.

undefined
php artisan route:list

Output yang akan muncul di terminal/CMD.

Langkah 3 - Uji Coba RESTful API

UNDUH POSTMAN : https://www.postman.com/downloads/

Sekarang, silahkan teman-teman buka aplikasi Postman, kemudian masukkan URL berikut ini http://localhost:8000/api/products dan untuk method-nya silahkan pilih GET.

Jika sudah, silahkan klik Send dan jika berhasil maka teman-teman akan mendapatkan hasil seperti berikut ini.

json
{ "success": true, "message": "List Data Products", "data": { "current_page": 1, "data": [], "first_page_url": "http://localhost:8000/api/products?page=1", "from": null, "last_page": 1, "last_page_url": "http://localhost:8000/api/products?page=1", "links": [ { "url": null, "label": "&laquo; Previous", "active": false }, { "url": "http://localhost:8000/api/products?page=1", "label": "1", "active": true }, { "url": null, "label": "Next &raquo;", "active": false } ], "next_page_url": null, "path": "http://localhost:8000/api/products", "per_page": 5, "prev_page_url": null, "to": null, "total": 0 } }

Di atas, kita masih belum menampilkan data apapun, karena memang kita belum memiliki data di dalam database. Dan yang ditampilkan adalah array kosong.

kotlin
data: []

Kesimpulan

Pada artikel ini, kita telah belajar bagaimana cara membuat controller, route dan menampilkan data dalam format JSON menggunakan API Resources di dalam Laravel 12.

Pada artikel selanjutnya, kita semua akan belajar bagaimana cara melakukan proses create atau insert data ke dalam database dengan REST API di Laravel 12.

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