Restful API Menggunakan Laravel Framework

Laravel telah dilengkapi fitur untuk membuat backend API, diantaranya:

  • Controller API
  • Passport untuk otentikasi
  • API routes

Pada tulisan kali ini, kita akan membuat backend API sampai user bisa melakukan request access_token. Tanpa berlama-lama, langsung kita buat project baru menggunakan composer dengan mengeksekusi perintah berikut :

Kita tunggu proses yang berjalan sampai selesai. Setelah proses selesai, kemudian kita buat 1 buah database baru dengan nama laravel_api. Setelah database selesai kita buat. Selanjutnya lakukan setting koneksi database dengan mengedit file .env mulai baris DB_CONNECTION sampai DB_PASSWORD menjadi seperti berikut :

Untuk DB_USERNAME dan DB_PASSWORD sesuaikan dengan settingan pada mysql yang digunakan.

Install Package Passport

Proses setting koneksi database selesai selanjutnya install passport dengan mengeksekusi perintah berikut :

Kita tunggu lagi sampai selesai, setelah selesai kita lanjut lakukan proses instalasi sesuai link berikut https://laravel.com/docs/5.7/passport#installation

Sewaktu kita jalan composer untuk install package laravel/passport, passport service provider mendaftarkan database migrationnya ke framework. Sehingga kita harus migrate database setelah proses instalasi package. Passport migration akan membuat tabel yang diperlukan untuk menyimpan client dan access_token yang akan kita gunakan.

Jalankan proses migrate database dengan mengeksekusi perintah berikut :

Kemudian jalankan perintah passport:install untuk membuat encryption key yang nantinya kita gunakan untuk men-generate access_token. Perintah tersebut akan men-generate “personal access” dan “password access” untuk membuat access_token.

Setelah menjalankan perintah diatas, selanjutnya edit file App/User.php menjadi berikut :

Kemudian kita harus memanggil Passport:routes method pada method boot pada class App/Providers/AuthServiceProvider.php

Terakhir pada file config\auth.php, set driver api authentication guard menjadi passport

Zizaco/Entrust

Setelah proses instalasi passport selesai, selanjutnya kita install package zizaco/entrust dengan menjalankan perintah berikut :

Untuk instalasi package tersebut pernah saya bahas di https://www.fadlur.com/blog/sistem-otentikasi-laravel-5-zizaco-entrust/

Untuk kali ini kita bikin lebih sederhana saja. Edit file config/app.php dan pada array provider tambahkan

Masih di file config/app.php pada array alias tambahkan

Kemudian buka file config/auth.php dan edit bagian ini

Selanjutnya buka file app/Http/Kernel.php dan pada bagian array routeMiddleware tambahkan baris kode berikut :

Untuk membuat table relasi antara users dan roles, buat migration dengan menjalankan perintah:

Kemudian migrate file migration yang barusan dibuat dengan menjalankan perintah berikut :

Setelah proses migrate selesai, buat 2 buah model yaitu Role dan Permission dengan menjalankan perintah

Buka file app/Role.php dan edit menjadi seperti berikut

Selanjutnya buka file app/Permission dan edit menjadi seperti berikut

UserTableSeeder

Untuk pengujian, kita membutuhkan username, password dan roles. Oleh karena itu kita harus membuat data dummy dengan membuat file seeder. Untuk membuat file seeder, jalankan perintah berikut

Buka file database/seeds/UserTableSeeder.php dan edit menjadi berikut

Untuk memasukkan ke database, jalankan perintah berikut

Terakhir untuk pengujian, buka aplikasi postman dan jalankan aplikasi backend yang sudah kita buat dengan perintah

aplikasi postman
Postman

Pada tab body, sesuaikan seperti gambar di atas. Untuk client_secret sesuaikan dengan client_secret hasil generate php artisan passport:install

Setelah diklik tombol send akan tampil response seperti berikut

response postman
Postman

Video proses pembuatannya bisa dilihat di bawah ini

Tinggalkan Balasan

This site uses Akismet to reduce spam. Learn how your comment data is processed.