Cara Membuat REST API di Laravel #3 : Menampilkan Data dari Database


Cara Membuat REST API di Laravel #3 : Menampilkan Data dari Database

Cara Membuat REST API di Laravel #3 : Menampilkan Data dari Database - Halo teman-teman semuanya, diartikel sebelumnya kita sudh berhasil membuat insert atau input data ke database dengan REST API di Framework Laravel.

Pada artikel kali ini kita semua akan belajar bagaimana cara menampilkan data dari database dengan REST API dalam format JSON.

Langsung saja, silahkan teman-teman buka file PostsController.php didalam folder app/Http/Controllers/api/v1 dan silahkan teman-teman ubah menjadi seperti berikut ini :

<?php

namespace App\Http\Controllers\api\v1;

use App\Http\Controllers\Controller;
use App\Post;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Validator;

class PostsController extends Controller
{
    /**
     * @return \Illuminate\Contracts\Routing\ResponseFactory|\Illuminate\Http\Response
     */
    public function index()
    {
        $posts = Post::latest()->get();
        return response([
            'success' => true,
            'message' => 'List Semua Posts',
            'data' => $posts
        ], 200);
    }

    /**
     * @param Request $request
     * @return \Illuminate\Http\JsonResponse
     */
    public function store(Request $request)
    {
        //validate data
        $validator = Validator::make($request->all(), [
            'title'     => 'required',
            'content'   => 'required',
        ],
            [
                'title.required' => 'Masukkan Title Post !',
                'content.required' => 'Masukkan Content Post !',
            ]
        );

        if($validator->fails()) {

            return response()->json([
                'success' => false,
                'message' => 'Silahkan Isi Bidang Yang Kosong',
                'data'    => $validator->errors()
            ],401);

        } else {

            $post = Post::create([
                'title'     => $request->input('title'),
                'content'   => $request->input('content')
            ]);

            if ($post) {
                return response()->json([
                    'success' => true,
                    'message' => 'Post Berhasil Disimpan!',
                ], 200);
            } else {
                return response()->json([
                    'success' => false,
                    'message' => 'Post Gagal Disimpan!',
                ], 401);
            }
        }
    }
}

Dari perubahan PostsController.php diatas, kita menambahkan 1 fungsi baru dengan nama index, fungsi ini akan kita gunakan untuk menampilkan data dari database berupa format JSON.

Sekarang silahkan teman-teman buka file api.php di dalam folder routes, silahkan tambahkan kode berikut ini :

Route::get('/v1/posts', 'api\v1\PostsController@index');

Sekarang teman-teman bisa mencobanya langsung dengan Postman, silahkan masukkan http://localhost:8000/api/v1/posts/ pada bagian URL dan jangan lupa menggunakan method GET.

Jika berhasil, teman-teman akan melihat response dengan format JSON kurang lebih seperti berikut ini :

{
    "success": true,
    "message": "List Semua Posts",
    "data": [
        {
            "id": 2,
            "title": "Test Post 2",
            "content": "Test Content Post 2",
            "created_at": "2020-02-02 03:47:11",
            "updated_at": "2020-02-02 03:47:11"
        },
        {
            "id": 1,
            "title": "Test Post 1",
            "content": "Test Content Post 1",
            "created_at": "2020-02-02 03:46:51",
            "updated_at": "2020-02-02 03:46:51"
        }
    ]
}

Atau kurang lebih seperti gambar dibawah ini :


Oke, sampai disini pembahasan tentang menampilkan data dari database dengan REST API di Framework Laravel.

Di artikel selanjutnya kita semua akan belajar menampilkan data berdasarkan ID, atau detail data berdasarkan ID.

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