Tutorial Restful API Laravel 10 #5 : Menampilkan Data dari Database


Tutorial Restful API Laravel 10 #5 : Menampilkan Data dari Database

Halo teman-teman semuanya, pada pembahasan artikel kali ini kita semua akan belajar bagaimana cara menampilkan list data dalam format JSON untuk kebutuhan Rest API di dalam Laravel.

Langkah 1 - Membuat Controller

Pertama-tama, kita akan membuat controller-nya terlebih dahulu. Di dalam controller ini nantinya kita akan membuat method-method untuk kebutuhan CRUD.

Silahkan teman-teman jalankan perintah berikut ini di dalam terminal/CMD.

php artisan make:controller Api/PostController

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

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

<?php

namespace App\Http\Controllers\Api;

//import Model "Post"
use App\Models\Post;

use Illuminate\Http\Request;
use App\Http\Controllers\Controller;

//import Resource "PostResource"
use App\Http\Resources\PostResource;

class PostController extends Controller
{
    /**
     * index
     *
     * @return void
     */
    public function index()
    {
        //get all posts
        $posts = Post::latest()->paginate(5);

        //return collection of posts as a resource
        return new PostResource(true, 'List Data Posts', $posts);
    }
}

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

//import Model "Post"
use App\Models\Post;

Kemudian kita juga import API Resources yang sudah kita buat sebelumnyam yaitu PostResource.

//import Resource "PostResource"
use App\Http\Resources\PostResource;

Di dalam class PostController, kita menambahkan method baru dengan nama index.

public function index()
{

	//...
	
}

Di dalam method tersebut, pertama kita membuat sebuah variable dengan nama $posts dan berisi Model Post yang digunakan untuk mengambil data dari database.

//get all posts
$posts = Post::latest()->paginate(5);

Di dalam Model Post di atas, kita memanggil 2 method, yaitu :

  • latest - digunakan untuk mengurutkan data berdasarkan yang yang terbaru.
  • paginate - membatasi jumlah data yang ditampilkan pada setiap halaman.

Setelah data berhasil disimpan di dalam variable $posts, langkah selanjutnya adalah memanggil API Resource dengan memberikan beberapa parameter.

//return collection of posts as a resource
return new PostResource(true, 'List Data Posts', $posts);

Di atas, kita memberikan 3 parameter di dalam API Resource dan dipisah menggunakan koma (,).

  • true - merupakan status success dari response Rest API.
  • List Data Posts - merupakan pesan dari response Rest API.
  • $posts - merupakan data yang akan ditampilkan di dalam response Rest API.

Langkah 2 - Membuat Route API

Setelah controller berhasil dibuat, maka langkah berikutnya adalah menambahkan route.

Silahkan teman-teman buka file routes/api.php, kemudian ubah semua kode-nya menjadi seperti berikut ini.

<?php

use Illuminate\Support\Facades\Route;

//posts
Route::apiResource('/posts', App\Http\Controllers\Api\PostController::class);

Di atas, kita menambahkan route baru dengan jenis apiResource. Dengan jenis ini, maka semua route untuk kebutuhan CRUD akan otomatis dibuatkan oleh Laravel.

Untuk memastikan route di atas berhasil ditambahkan, silahkan teman-teman jalankan perintah berikut ini di dalam terminal/CMD.

php artisan route:list

Langkah 3 - Uji Coba Rest API Menampilkan Data

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

Untuk testing Rest API kita akan menggunakan software yang bernama Postman, jadi silahkan teman-teman mengunduhnya terlebih dahulu.

Uji Coba Menampilkan Data

Silahkan teman-teman buka Postman, kemudian masukkan URL berikut ini : http://localhost:8000/api/posts.

Kemudian untuk method yang digunakan adalah GET. Dan setelah itu silahkan klik Send, jika berhasil maka kurang lebuh hasilnya seperti berikut ini.

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

Di atas, karena kita belum memiliki data apapun di dalam table atau database, maka hasilnya adalah array kosong.

data: []

Sampai disini pembahasan kita bagaimana cara menampilkan data Rest API di Laravel, pada artikel selanjutnya kita semua akan belajar bagaimana cara melakukan proses insert data menggunakan Rest API di Laravel.

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