Pada tutorial sebelumnya kita sudah berhasil membuat update data ke database dengan REST API di Framework Laravel. Pada tutorial ini kita akan belajar bagaimana cara menghapus data dari database dengan REST API di Framework Laravel.
Silahkan buka file PostsController.php di dalam folder app/Http/Controllers/api/v1, silahkan tamahkan 1 fungsi bernama destroy() dengan kode seperti berikut ini :
public function destroy($id) { $post = Post::findOrFail($id); $post->delete(); if ($post) { return response()->json( [ 'success' => true, 'message' => 'Post Berhasil Dihapus!', ], 200); } else { return response()->json( [ 'success' => false, 'message' => 'Post Gagal Dihapus!', ], 400 ); } }
Sehingga sintak pada file PostsController.php 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 update(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() ], ); } else { $post = Post::whereId($request->input('id'))->update( [ 'title' => $request->input('title'), 'content' => $request->input('content'), ] ); if ($post) { return response()->json( [ 'success' => true, 'message' => 'Post Berhasil Diupdate!', ], 200 ); } else { return response()->json( [ 'success' => false, 'message' => 'Post Gagal Diupdate!', ], 401 ); } } } public function destroy($id) { $post = Post::findOrFail($id); $post->delete(); if ($post) { return response()->json( [ 'success' => true, 'message' => 'Post Berhasil Dihapus!', ], 200); } else { return response()->json( [ 'success' => false, 'message' => 'Post Gagal Dihapus!', ], 400 ); } } 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 ); } } } }
Pada sintak di atas, kita sudah menambahkan 1 fungsi baru dengan nama destroy(), fungsi ini kita gunakan untuk menghapus data dari database.
Sekarang kita buka file api.php di dalam folder routes, dan silahkan tambahkan kode berikut ini :
Route::delete('/v1/posts/{id?}', [App\Http\Controllers\api\v1\PostsController::class, 'destroy']);
Sekarang kita coba langsung dengan Postman, misalkan kita akan menghapus data dengan ID 1, silahkan masukkan http://localhost:8000/api/v1/posts/1 pada bagian URL dan jangan lupa menggunakan method DELETE.
Jika berhasil, maka akan melihat response dengan format JSON seperti berikut ini :
{ "success": true, "message": "Post Berhasil Dihapus!" }
Seperti pada gambar beikut ini :
Kita cek juga ke table posts yang ada pada databse db_laravel_api, jika berhasil maka data dengan ID 1 juga akan berhasil dihapus seperti gambar berikut ini :
Demikian tutorial tentang menghapus data dari database dengan RAST API pada Laravel. Jika ada pertanyaan silahkan tuliskan dikolom komentar, semoga bermanfaat.
Be the first to comment