Cara Membuat REST API di Laravel #4 : Menampilkan Data Berdasarkan ID


Cara Membuat REST API di Laravel #4 : Menampilkan Data Berdasarkan ID

Cara Membuat REST API di Laravel #4 : Menampilkan Data Berdasarkan ID - Halo teman-teman semuanya, di artikel sebelumnya kita sudah berhasil menampilkan data dari database dengan REST API dalam format JSON.

Pada artikel kali ini kita semua akan belajar bagaimana cara menampilkan data berdasarkan ID, atau detail data berdasarkan ID.

langsung saja kita mulai, silahkan teman-teman buka PostsController.php di dalam folder app/Http/Controllers/api/v1, silahkan teman-teman ubah kodenya 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);
            }
        }
    }

    /**
     * @param $id
     * @return \Illuminate\Http\JsonResponse
     */
    public function show($id)
    {
        $post = Post::whereId($id)->first();


        if ($post) {
            return response()->json([
                'success' => true,
                'message' => 'Detail Post!',
                'data'    => $post
            ], 200);
        } else {
            return response()->json([
                'success' => false,
                'message' => 'Post Tidak Ditemukan!',
                'data'    => ''
            ], 401);
        }
    }
}

Dari kode diatas jika kita perhatikan, kita sudah berhasil menambahkan sebuah fungsi baru dengan nama show, fungsi ini digunakan untuk menampilkan data berdasarkan ID.

Selanjutnya, silahkan teman-teman buka file api.php di dalam folder routes, dan silahkan tambahkan kode dibawah ini :

Route::get('/v1/posts/{id?}', 'api\v1\PostsController@show');

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

Dari URL diatas, kita mencoba menampilkan data berdasarkan ID 1

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

{
    "success": true,
    "message": "Detail Post!",
    "data": {
        "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 :


Sampai disini pembahasan tentang menampilkan data berdasarkan ID, di artikel selanjutnya kita semua akan belajar tentang bagaimana cara meng-update data ke database dengan REST API.

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