
Laravel – Dalam membangun aplikasi sering kali tidak hanya berfokus dalam satu based appplication saja, misal web. Aplikasi yang kita bangun juga datanya bisa digunakan untuk aplikasi lain misal antar aplikasi web maupun mobile.
Nah untuk menjembatani komunikasi pertukaran data tersebut digunakanlah Web Service. Saya asumsikan kalian sudah mengerti tentang dasar-dasar penggunaan framework laravel. Kita akan memulai mempelajari cara simpel untuk membuat webservice menggunakan laravel.
Baca juga: Tutorial Otentikasi API Menggunakan Passport Laravel
Persiapan Database
Untuk database yang akan kita gunakan menggunakan postgreesql, silahkan buat database latihan dan koneksikan database kalian di env laravel.
Buat tabel di database latihan kalian dengan nama employee.
1 2 3 4 5 6 7 8 9 10 11 |
create table employee( employee_id serial primary key, name VARCHAR (255), position VARCHAR (255), join_date date, salary integer, created_at TIMESTAMP, updated_at TIMESTAMP, deleted_at TIMESTAMP ) |
Setelah membuat tabelnya, jangan lupa kalian isi dengan data.
1 2 3 4 5 |
insert into employee values(1,'Tiger Nixon','System Architect','2011-04-25',9800000,null,null,null) insert into employee values(2,'Garrett Winters','Senior Javascript Developer','2017-04-25',4600000,null,null,null) insert into employee values(3,'Brielle Williamson','Support Lead','2014-04-25',15600000,null,null,null) insert into employee values(4,'Haley Kennedy','Senior Marketing Designer','2012-04-25',7000000,null,null,null) insert into employee values(5,'Tiger Wong','Regional Director','2018-04-25',8000000,null,null,null) |
Membuat Webservice Menggunakan Laravel
Sebelum memulai alangkah baiknya kalian install aplikasi postman terlebih dahulu, Karena kita akan menggunakan postman untuk melakukan testing webservice.
Nah pada tahap ini, bukalah folder route/api . Di sana kita akan membuat route untuk request get maupun post, tergantung kebutuhan developer untuk membuat webservice.
Saya contohkan sebagai berikut.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
Route::get('/getEmployee',function(){ try{ $data = DB::table('employee')->get(); return response()->json([ 'response'=>[ 'status' => true, 'message' => 'success', 'data' => $data, ] ],200); }catch(Exception $e){ return response()->json([ 'response'=>[ 'status' => false, 'message' => 'failed', 'data' => [], ] ],200); } }); |
Silahkan kalian jalankan server development laravel dengan php artisan serve. Kemudian kalian buka aplikasi postman dan coba akses url nya sebagai berikut.

Kalian klik send, maka data json yang ditangkap sebagai berikut.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 |
{ "response": { "status": true, "message": "success", "data": [ { "employee_id": 1, "name": "Tiger Nixon", "position": "System Architect", "join_date": "2011-04-25", "salary": 4000000, "created_at": null, "updated_at": null, "deleted_at": null }, { "employee_id": 2, "name": "Garrett Winters", "position": "Senior Javascript Developer", "join_date": "2017-04-25", "salary": 4600000, "created_at": null, "updated_at": null, "deleted_at": null }, { "employee_id": 3, "name": "Brielle Williamson", "position": "Support Lead", "join_date": "2014-04-25", "salary": 15600000, "created_at": null, "updated_at": null, "deleted_at": null }, { "employee_id": 4, "name": "Haley Kennedy", "position": "Senior Marketing Designer", "join_date": "2012-04-25", "salary": 7000000, "created_at": null, "updated_at": null, "deleted_at": null }, { "employee_id": 5, "name": "Tiger Wong", "position": "Regional Director", "join_date": "2018-04-25", "salary": 8000000, "created_at": null, "updated_at": null, "deleted_at": null } ] } } |

Selamat kalian sudah berhasil membuat webservice yang simpel. Tapi webservice tersebut bisa diakses oleh siapa saja, karena webservice tersebut belum ada otentikasinya.
Selanjutnya kita akan menambahkan otentikasi pada webservice tersebut, supaya webservice tersebut hanya bisa diakses oleh pihak yang mempunyai token aksesnya
Menambah Otentikasi Pada Webservice
Kita akan menambahkan otentikasi yang simpel pada webservice kita.
Pertama create ApiToken.php middleware di folder app/Http/Middleware .
1 |
php artisan make:middleware APIToken |
Kemudian buka ApiToken.php dan update kodenya sesuai contoh berikut.
1 2 3 4 5 6 7 8 |
public function handle($request, Closure $next) { $token=$request->header('Authorization'); if($token != 'yourToken'){ return response()->json(['message'=>'Access denied because unauthorized'],401); } return $next($request); } |
Setelah itu buka Kernel.php kemudian tambahkan middleware baru ke $middlewareGroups ‘api’ . Ini digunakan untuk token yang bersifat statis sehingga mudah dan simpel untuk digunakan dalam memberikan otentikasi.
1 2 3 4 5 6 |
'api' => [ 'throttle:60,1', 'bindings', 'APIToken' => \App\Http\Middleware\APIToken::class, ], ]; |

Kemudian jalankan php artisan serve dan buka kembali postman. Kalau kita belum memberikan token maka hasilnya akan seperti berikut.

Mari kita coba memasukkan Authorization nya di header, dan isi value token kalian, maka hasilnya sebagai berikut.

Selamat kalian sudah membuat webservice simpel dan membuat otentikasi yang simpel juga menggunakan laravel.
Semoga apa yang saya sampaikan bermanfaat. 😀