Cara Membuat REST API di Laravel #6 : Hapus Data dari Database - Halo teman-teman semuanya, diartikel sebelumnya kita sudah berhasil membuat update data ke database dengan REST API di Framework Laravel.
Pada kesempatan kali ini kita semua akan belajar bagaimana cara menghapus data dari database dengan REST API di Framework Laravel.
Langsung saja kita mulai, silahkan buka file PostsController.php
di dalam folder app/Http/Controllers/api/v1, silahkan ubah kodenya menjadi seperti berikut ini :
<?php
namespace App\Http\Controllers\api\v1;
use App\Http\Controllers\Controller;
use App\Post;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Validator;
class PostsController extends Controller
{
/**
* @return \Illuminate\Contracts\Routing\ResponseFactory|\Illuminate\Http\Response
*/
public function index()
{
$posts = Post::latest()->get();
return response([
'success' => true,
'message' => 'List Semua Posts',
'data' => $posts
], 200);
}
/**
* @param Request $request
* @return \Illuminate\Http\JsonResponse
*/
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);
}
}
}
/**
* @param $id
* @return \Illuminate\Http\JsonResponse
*/
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);
}
}
/**
* @param Request $request
* @return \Illuminate\Http\JsonResponse
*/
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()
],401);
} 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);
}
}
}
/**
* @param $id
* @return \Illuminate\Http\JsonResponse
*/
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);
}
}
}
Jika kita perhatikan kode diatas, kita seudah berhasil menambahkan 1 fungsi baru
dengan nama destroy
, fungsi ini kita gunakan untuk menghapus dta dari database.
Sekarang silahkan teman-teman buka file api.php
di dalam folder routes, dan silahkan tmabahkan kode berikut ini :
Route::delete('/v1/posts/{id?}', 'api\v1\PostsController@destroy');
Sekarang teman-teman bisa mencobanya langsung dengan Postman, silahkan masukkan http://localhost:8000/posts/1 pada bagian URL dan jangan lupa menggunakan method DELETE
.
Misalkan disini kita akan menghapus dengan ID 1
, maka kurang lebih seperti gambar berikut ini :
Jika berhasil, teman-teman akan melihat response dengan format JSON
seperti berikut ini :
{
"success": true,
"message": "Post Berhasil Dihapus!"
}
Sampai disini pembahasan tentang menghapus data ke database. Terima Kasih