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