Cara Membuat REST API di Laravel #5 : Update Data ke Database - Halo teman-teman semuanya, di artikel sebelumnya kita sudah berhasil menampilkan data berdasarkan ID dengan REST API di Framework Laravel.
Pada artikel kali ini kita semua akan belajar bagaimana cara meng-update data ke database dengan REST API di Framework Laravel.
Langsung saja kita mulai, silahkan teman-teman buka file PostsController.php
di dalam folder app/Http/Controllers/api/v1 dan silahkan ubah kodenyanya 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);
}
}
}
}
Jika kita perhatikan dari kode diatas, kita sudah berhasil menambahkan satu fungsi baru
dengan nama update
, fungsi ini kita gunakan untuk mengupdate data ke database berdasarkan ID.
Sekarang silahkahkan teman-teman buka file api.php
di dalam folder routes, dan silahkan tambahkan kode dibawah ini :
Route::post('/v1/posts/update', 'api\v1\PostsController@update');
Sekarang teman-teman bisa mencobanya langsung dengan Postman, silahkan masukkan http://localhost:8000/posts/update pada bagian URL dan jangan lupa menggunakan method POST
.
Sebelum kita klik Send, silahkan klik tab body
pada Postman dan pilih form-data
, dan tambahkan key
dengan nama id
, title
dan body
beserta valunya.
Misalkan disini kita akan meng-update 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 Diupdate!"
}
Sampai disini pembahasan tentangmeng-update data ke database, di artikel selanjutnya kita semua akan belajar tentang bagaimana cara menghapus data dari database dengan REST API.
Terima Kasih