Tutorial Restful API Laravel 10 #7 : Menampilkan Detail Data


Tutorial Restful API Laravel 10 #7 : Menampilkan Detail Data

Halo teman-teman semuanya, pada artikel kali ini kita semua akan belajar bagaimana cara menampilkan detail data berdasarkan ID menggunakan Rest API.

Sebenarnya untuk parameter tidak harus menggunakan ID, misalnya kita bisa menggunakan parameter berupa slug. Tapi kita akan gunakan ID, karena secara umum memang itu yang sering digunakan.

Langkah 1 - Menambahkan Method Show

Disini kita akan menambahkan 1 method baru di dalam controller PostController.php, dimana method tersebut nanti yang berfungsi untuk menampilkan detail data berdasarkan ID.

Silahkan teman-teman buka file app/Http/Controllers/Api/PostController.php, 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;

//import Facade "Validator"
use Illuminate\Support\Facades\Validator;

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);
    }

    /**
     * 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($id)
    {
        //find post by ID
        $post = Post::find($id);

        //return single post as a resource
        return new PostResource(true, 'Detail Data Post!', $post);
    }
}

Dari perubahan kode di atas, kita menambahkan method baru dengan nama show dan jika teman-teman perhatikan, pada method tersebut kita berikan parameter $id. Parameter tersebut nantinya akan diisi dengan ID yang diambil dari URL browser.

public function show($id)
{

	//...
	
}

Di dalam method di atas, kita membuat variable baru dengan nama $posts dan berisi Model Post dengan menambahkan method find dan isi di dalamnya adalah parameter $id. Artinya kita akan mencari data post berdasarkan ID yang didapatkan dari parameter.

//find post by ID
$post = Post::find($id);

Setelah data berhasil di dapatkan, maka kita akan return menggunakan API Resource dengan menambahkan 3 parameter.

//return single post as a resource
return new PostResource(true, 'Detail Data Post!', $post);

Langkah 2 - Uji Coba Rest API Menampilkan Detail Data

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

INFORMASI : contoh di atas, saya memberikan nilai parameter ID 1, karena data yang saya miliki di database memiliki ID tersebut.

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

{
    "success": true,
    "message": "Detail Data Post!",
    "data": {
        "id": 1,
        "image": "http://localhost:8000/storage/posts/QXcsP1B39oRy8gxkC72z1eo4DDnVpyhjgUhAOFtt.png",
        "title": "Belajar Rest API Laravel 10",
        "content": "Belajar Rest API Laravel 10",
        "created_at": "2023-03-05T23:04:39.000000Z",
        "updated_at": "2023-03-05T23:04:39.000000Z"
    }
}

Kurang lebih seperti itu tutorial menampilkan detail data menggunakan Rest API di dalam Laravel. Dan pada artikel selanjutnya kita akan belajar melakukan proses update 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