Cara Membuat REST API di Laravel #2 : Input Data ke Database - Halo teman-teman semuanya, diartikel sebelumnya kita sudah berhasil menginstall Framework Laravel dan membuat sebuah Database.
Pada artikel kali ini kita semua akan belajar bagaimana cara memasukkan data atau insert data ke Database dengan REST API di Framework Laravel.
Pada praktek REST API kali ini kita akan membutuhkan tools untuk membantu kita dalam melakukan manipulasi data dengan REST API yaitu Postman.
Jika teman-teman belum menginstallnya, silahkan diinstall terlebih dahulu, untuk installasi bisa melalui situs resminya di https://www.getpostman.com/.
Setelah install Postman selesai, kita lanjutkan membuat sebuah controller baru dengan cara menjalankan perintah dibawah ini :
php artisan make:controller 'api\v1\PostsController'
Dari perintah diatas, kita berhasil membuat file baru dengan nama PostsController.php
di dalam folder app/Http/Controllers/api/v1
Sekarang silahkan buka PostsController.php
dan disini kita akan menambahkan sebuah fungsi baru dengan nama store
, fungsi ini kita gunakan untuk menyimpan data ke database, silahkan buka PotsController.php
dan ubahlah 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
{t
/**
* @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);
}
}
}
}
Dari kode diatas, kita menambahkan fungsi baru dengan nama store
, fungsi ini kita gunakan untuk menyimpan data ke database.
Selanjutnya kita akan membuat sebuah route untuk api yang akan kita gunakan nanti, silahkan buka file api.php
di dalam folder routes, dan silahkan tambahkan kode dibawah ini:
Route::post('/v1/posts/store', 'api\v1\PostsController@store');
Sekarang kita bisa langsung mencoba REST API menggunakan Postman, silahkan buka Postman dan masukkan http://localhost:8000/api/v1/posts/store pada bagian URL dan jangan lupa menggunakan method POST
.
Silahkan klik Send, maka teman-teman akan menemukan sebuah pesan validasi error berupa format JSON seperti berikut ini:
{
"success": false,
"message": "Silahkan Isi Bidang Yang Kosong",
"data": {
"title": [
"Masukkan Title Post !"
],
"content": [
"Masukkan Content Post !"
]
}
}
Atau kurang lebih seperti gambar dibawah ini :
Pesan itu muncul karena kita belum menambahkan form-data
dengan kolom title
dan content
, silahkan klik tab body
pada Postman dan pilih form-data
, dan tambahkan key
dengan nama title
dan body
beserta valunya.
Jika sudah kita bisa klik Send, jika berhasil teman-teman akan mendapatkan format JSON sepertiti berikut ini :
{
"success": true,
"message": "Post Berhasil Disimpan!"
}
Atau kurang lebih seperti gambar dibawah ini :
Dari hasil response JSON
diatast, kita sudah berhasil menginput data atau insert data ke database, jika teman-teman cek di tabelnya kurang lebih seperti berikut ini :
Sampai disini tutorial input data atau insert data dengan REST API di Framework Laravel. Di artikel selanjutnya kita bersama-sama akan belajar cara menampilkan data dengan REST API di Framework Laravel.
Terima Kasih