Pada tutorial sebelumnya kita sudah berhasil menampilkan data dari database dengan REST API dalam format JSON. Pada tutorial ini kita akan belajar bagaimana cara menampilkan data berdasarkan ID, atau detail data berdasarkan ID.
Silahkan buka PostsController.php di dalam folder app/Http/Controllers/api/v1, tambahkan 1 fungsi dengan nama show() seperti berikut ini :
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 ); } }
Sehingga kode lengkapnya menjadi seperti berikut ini :
<?php namespace App\Http\Controllers\api\v1; use App\Http\Controllers\Controller; use Illuminate\Http\Request; use App\Models\Post; use Illuminate\Support\Facades\Validator; class PostsController extends Controller { /** * @return \Illuminate\Contracts\Routing\ResponseFactory|\Illuminate\Http\Response */ /** * @param Request $request * @return \Illuminate\Http\JsonResponse */ public function index() { $posts = Post::latest()->get(); return response( [ 'success' => true, 'message' => 'List Semua Posts', 'data' => $posts ], 200); } 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 ); } } 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 kode diatas jika kita menambahkan sebuah fungsi baru dengan nama show, fungsi ini digunakan untuk menampilkan data berdasarkan ID.
Selanjutnya, silahkan buka file api.php di dalam folder routes dan tambahkan kode di bawah ini :
Route::get('/v1/posts/{id?}', [App\Http\Controllers\api\v1\PostsController::class, 'show']);
Sekarang kita bisa mencobanya langsung dengan Postman, silahkan masukkan http://localhost:8000/api/v1/posts/1 pada bagian URL dan jangan lupa menggunakan method GET. Dari URL tersebut, kita mencoba menampilkan data berdasarkan ID 1.
Jika berhasil, kita akan melihat response dengan format JSON kurang lebih seperti berikut ini :
{ "success": true, "message": "Detail Post!", "data": { "id": 1, "title": "Contoh Judul", "content": "Ini adalah contoh konten", "created_at": "2024-09-15T10:45:58.000000Z", "updated_at": "2024-09-15T10:45:58.000000Z" } }
Seperti gambar dibawah ini :
Demikian pembahasan tentang menampilkan data berdasarkan ID, pada tutorial selanjutnya kita akan belajar tentang bagaimana cara meng-update data ke database dengan REST API.
Jika ada pertanyaan silahkan tuliskan di kolom komentar, semoga bermanfaat.
Be the first to comment