Halo teman-teman semuanya, di artikel sebelumnya kita telah belajar bagaimana cara melakukan installasi dann konfigurasi JWT atau JSON Web Token di dalam Laravel. Sekarang kita akan lanjutkan belajar membuat RESTful API untuk proses register.
Langkah 1 - Membuat Controller Register
Sekarang kita akan belajar membuat controller untuk register. Silahkan jalankan perintah berikut ini di dalam terminal/CMD dan pastikan berada di dalam project Laravel-nya.
php artisan make:controller Api/RegisterController -i
Di atas, kita menambahkan flag -i
, yang artinya controller tersebut akan kita jadikan sebagai single action controller, atau controller yang hanya memiliki 1 method saja.
Dan jika perintah di atas berhasil dijalankan, maka kita akan mendapatkan 1 file baru dengan nama RegisterController.php
yang berada di dalam folder app/Http/Controllers/Api
.
Silahkan buka file tersebut dan ubah semua kode-nya menjadi seperti berikut ini.
<?php
namespace App\Http\Controllers\Api;
use App\Models\User;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\Validator;
class RegisterController extends Controller
{
/**
* Handle the incoming request.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function __invoke(Request $request)
{
//set validation
$validator = Validator::make($request->all(), [
'name' => 'required',
'email' => 'required|email|unique:users',
'password' => 'required|min:8|confirmed'
]);
//if validation fails
if ($validator->fails()) {
return response()->json($validator->errors(), 422);
}
//create user
$user = User::create([
'name' => $request->name,
'email' => $request->email,
'password' => bcrypt($request->password)
]);
//return response JSON user is created
if($user) {
return response()->json([
'success' => true,
'user' => $user,
], 201);
}
//return JSON process insert failed
return response()->json([
'success' => false,
], 409);
}
}
Dari penambahan kode di atas, pertama-tama kita import Model User
.
use App\Models\User;
Karena kita akan menerapkan validasi, maka kita juga akan melakukan import Facades validator
dari Laravel.
use Illuminate\Support\Facades\Validator;
Dan di dalam class RegisterController
dan tepatnya pada method __invoke
, kita tambahkan rule validasi. Dimana akan digunakan untuk memvalidasi request yang dikirimkan.
//set validation
$validator = Validator::make($request->all(), [
'name' => 'required',
'email' => 'required|email|unique:users',
'password' => 'required|min:8|confirmed'
]);
Dari penambahan validasi di atas, kurang lebih detailnya seperti berikut ini.
ATTRIBUE |
VALIDATION |
DESCRIPTION |
name |
required |
field/input wajib diisi. |
email |
required |
field/input wajib diisi. |
|
email |
field/input harus memili format email. |
|
unique:users |
field/input bersifat unik di dalam table users . |
password |
required |
field/input wajib diisi. |
|
min:8 |
field/input minimal 8 karakter |
|
confirmed |
field/input harus mempunyai inputan lagi untuk konfirmasi data yang sama. |
Jika data yang dikirimkan belum sesuai dengan validasi di atas, maka kita akan return ke dalam format JSON dengan memberikan error validasi dan status code 422
.
//if validation fails
if ($validator->fails()) {
return response()->json($validator->errors(), 422);
}
Tapi, jika data yang dikirimkan sudah sesuai dengan validasi di atas. Maka kita akan lakukan insert data user baru menggunakan Model User
.
//create user
$user = User::create([
'name' => $request->name,
'email' => $request->email,
'password' => bcrypt($request->password)
]);
Jika proses insert data di atas berhasil dilakukan, maka kita akan return dengan status code 201
dan berisi informasi data user yang telah diinsert.
//return response JSON user is created
if($user) {
return response()->json([
'success' => true,
'user' => $user,
], 201);
}
Tapi, jika data user gagal diinsert, maka kita akan return dengan status code 409
dengan informasi success false
.
//return JSON process insert failed
return response()->json([
'success' => false,
], 409);
Langkah 2 - Menambahkan Route API Register
Setelah berhasil menambahkan controller register, sekarang kita akan menambahkan sebuah route. Silahkan teman-teman jalankan perintah berikut ini di dalam terminal/CMD dan pastikan sudah berada di dalam project Laravel-nya.
php artisan install:api
Jika keluar pesan berikut ini, pilih Yes
dan ENTER.
One new database migration has been published. Would you like to run all pending database migrations? (yes/no)
Setelah itu, buka file routes/api.php
, kemudian ubah semua kode-nya menjadi seperti berikut ini.
<?php
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Route;
/**
* route "/register"
* @method "POST"
*/
Route::post('/register', App\Http\Controllers\Api\RegisterController::class)->name('register');
Di atas, kita menambahkan route baru dengan path /register
dan untuk method-nya adalah POST
.
Langkah 3 - Uji Coba API Register
Untuk melakukan proses uji coba RESTful API, kita membutuhkan sebuah tools tambahan yang bernama Postman
. Silahkan teman-teman bisa mengunduhnya di link berikut ini : https://www.postman.com/downloads/
Sekarang, silahkan aplikasi Postman dan masukkan URL berikut ini http://localhost:8000/api/register dan untuk method-nya silahkan pilih POST
.
Jika sudah, silahkan klik Send
dan jika berhasil maka kita akan mendapatkan error validasi yang dikirimkan oleh controller. Kurang lebih seperti berikut ini.

Sekarang kita akan uji coba dengan memasukkan data. Silahkan klik tab Body
dan pilih form-data
, kemudian masukkan key dab value berikut ini.
KEY |
VALUE |
name |
isi sesuai keinginan. |
email |
isi sesuai keinginan. |
password |
isi sesuai keinginan. |
password_confirmation |
isi sesuai dengan field/kolom password . |
Jika sudah, silahkan klik Send
, jika berhasil maka kita akan mendapatkan response kurang lebih seperti berikut ini :
{
"success": true,
"user": {
"name": "Fika Ridaul Maulayya",
"email": "admin@gmail.com",
"updated_at": "2022-05-18T02:30:18.000000Z",
"created_at": "2022-05-18T02:30:18.000000Z",
"id": 1
}
}

Kurang lebih seperti itu pembahasan bagaimana cara membuat proses register via Rest API. Di artikel selanjutnya kita akan belajar bagaimana cara membuat proses login dengan membuat token JWT.
Terima kasih