Tutorial Restful API di Laravel 9 #5 : Menampilkan Detail Data


Tutorial Restful API di Laravel 9 #5 :  Menampilkan Detail Data

Halo teman-teman semuanya, di artikel sebelumnya kita telah belajar bersama-sama bagaimana cara melakukan proses insert data ke dalam database menggunakan Rest API di Laravel, sekarang kita akan lanjutkan belajar bagaimana cara menampilkan data berdasarkan ID atau menampilkan detail data.

Langkah 1 - Menambahkan Method Show

Sekarang kita akan menambahkan 1 method baru dengan nama show di dalam controller PostController.php, silahkan buka file app/Htpp/Controllers/Api/PostController.php, kemudian ubah semua kode-nya menjadi seperti berikut ini :

<?php

namespace App\Http\Controllers\Api;

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

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

        //return collection of posts as a resource
        return new PostResource(true, 'List Data Posts', $posts);
    }
    
    /**
     * store
     *
     * @param  mixed $request
     * @return void
     */
    public function store(Request $request)
    {
        //define validation rules
        $validator = Validator::make($request->all(), [
            'image'     => 'required|image|mimes:jpeg,png,jpg,gif,svg|max:2048',
            'title'     => 'required',
            'content'   => 'required',
        ]);

        //check if validation fails
        if ($validator->fails()) {
            return response()->json($validator->errors(), 422);
        }

        //upload image
        $image = $request->file('image');
        $image->storeAs('public/posts', $image->hashName());

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

        //return response
        return new PostResource(true, 'Data Post Berhasil Ditambahkan!', $post);
    }
        
    /**
     * show
     *
     * @param  mixed $post
     * @return void
     */
    public function show(Post $post)
    {
        //return single post as a resource
        return new PostResource(true, 'Data Post Ditemukan!', $post);
    }
}

Dari penambahan kode di atas, kita menambahkan 1 method baru dengan nama show, dimana di dalam method tersebut kita berikan parameter Post $post, parameter tersebut merupakan Model injection atau dependency injection.

Jika data berhasil didapatkan, maka kita akan return menggunakan PostResource dengan mengirimkan beberapa parameter.

return new PostResource(true, 'Data Post Ditemukan!', $post);

Langkah 2 - Uji Coba Rest API

Sekarang kita akan lakukan uji coba Rest API detail post. Silahkan buka aplikasi Postman, kemudian masukkan URL berikut ini http://localhost:8000/api/posts/1 dan untuk method-nya silahkan pilih GET.

INFORMASI : di atas, kita uji coba dengan data yang memiliki ID 1.

Jika sudah, silahkan klik Send dan jika berhasil maka akan menampilkan detail informasi dari data post. Kurang lebih seperti berikut ini :

{
    "success": true,
    "message": "Data Post Ditemukan!",
    "data": {
        "id": 1,
        "image": "l8vWIZeqKBKKKK5SUz6F2IphIxmFZlKYgfHIzysk.png",
        "title": "Belajar Rest API di Laravel 9",
        "content": "Belajar Rest API di Laravel 9",
        "created_at": "2022-02-12T03:32:49.000000Z",
        "updated_at": "2022-02-12T03:32:49.000000Z"
    }
}

Sampai disini pembahasan bagaimana cara menampilkan data berdasarkan ID atau detail data menggunakan Rest API di Laravel. Di artikel selanjutnya kita bersama-sama akan belajaar bagaimana cara melakukan proses update data ke dalam database menggunakan 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