Membuat API menggunakan Framework Laravel 8

Sebelumnya kita sudah berhasil membuat aplikasi webservice menggunakan PHP native serta membuat aplikasi client untuk mengakases API tersebut. jika belum berhasil jangan lanjutkan ketahap ini karena anda harus memahami cara kerja aplikasi webservice tersebut.

sekarang saatnya kita belajar membuat aplikasi webservice menggunakan salah satu framework yang populer saat ini yaitu menggunakan framework laravel. pada website ini juga sebelumnya sudah pernah membahasa membuat aplikasi webservice menggunakan codeigniter jika ingin membacanya silahkan klik link berikut :

  1. Membuat API menggunakan Codeigniter 3
  2. Membuat Aplikasi Client menggunakan Codeigniter 3
Kembali kita lanjutkan pada artikel kali ini kita akan membuat sebuah aplikasi webservice menggunakan framework laravel, untuk membuat aplikasi tersebut kita akan bagi menjadi beberapa tahapan diantaranya adalah :

  1. Menginstal Composer
  2. Menginstal Laravel 8
  3. Membuat API
  4. Membuat Aplikasi Client

Menginstal Composer

Composer merupakan package installer yang berguna untuk menginstal berbagai macam aplikasi, tidak hanya digunakan untuk instalasi laravel saja namun framework-framework modern saat ini hampir semua menggunakan Composer sebagai package manager khususnya yang menggunakan bahasa pemrograman PHP.

pembahasan mengenai pengertian dan kegunaan composer telah ada sebelumnya pada artikel berikut ini Mengenal Composer silahkan dibaca terlebih dahulu kemudian lakukan instalasi dengan mendownload composer pada link yang sudah disediakan.

Menginstal Laravel 8

jika sudah berhasil melakukan instalasi kita akan lanjutkan ketahap berikutnya, yaitu menginstal laravel 8, perlu diketahui saat ini laravel yang paling populer dan telah melakukan beberapa update, sehingga langkah-langkah nya mungkin berbeda jika menggunakan laravel versi sbelumnya atau versi diatasnya. saat ini laravel sudah mencapai versi 8.x jika ingin melihat dokumentasi laravel anda bisa membuka link berikut ini : dokumentasi laravel 8

Seperti telah disebutkan sebelumnya bahwa kita membutuhkan composer untuk melakukan instalasi laravel, jadi sebelum memulai pastikan laravel sudah terinstal dengan benar pada laptop anda, jika ragu silahkan cek dengan membuka cmd (command prompt) kemudian ketik composer maka akan tampil seperti pada gambar berikut :
Membuat API menggunakan Laravel 8

Jika sudah sesuai kita akan melanjutkan ketahap berikutnya yaitu instalasi laravel.

Cara Instalasi Laravel 8

Langkah#1

buka cmd anda kemudian masukan perintah berikut :
composer global require laravel/installer
Untuk menjalankan perintah ini membutuhkan koneksi internet namun proses ini hanya dilakukan sekali saja, durasi pada saat instalasi package laravel tergantung dari koneksi internet anda, tunggu proses intalasi sampai selesai.

Langkah#2

pada langkah ini kita akan membuat sebuah project baru caranya silahkan buka kembali cmd anda tentukan lokasi instalasi nya, sebenarnya bebas saja kita mau simpan dimana project tersebut boleh disimpan di drive C: ataupun D:  namun pada studi kasus ini akan disimpan pada folder htdocs bawaan XAMPP, lokasi htdocs pada umumnya berada di drive C:\xampp\htdocs. untuk masuk kedalam folder tersebut bisa dengan cara seperti berikut :
  1. ketik C: jika lokasi anda berada pada drive lain. 
  2. jika sudah berada di C: ketik perintah berikut C:\  kemudian tekan enter.
  3. ketik lagi cd xampp perintah ini berguna untuk masuk ke drive xampp yang ada pada drive c.
  4. ketik lagi cd htdocs perintah ini berguna untuk masu ke folder htdocs yang ada pada folder xampp sehingga lokasi terakhir akan berada pada htdocs.

Membuat API menggunakan Laravel 8

Langkah#3

Lanjutkan dengan mengetik perintah dibawah ini pada folder htdocs
laravel new perpus_api
perintah diatas berguna untuk membuat sebuah project laravel baru dengan nama perpus_api, jika berhasil akan melakukan proses intalasi,seperti pada gambar berikut :
Membuat API menggunakan Laravel 8

Langkah#4

Membuat API menggunakan Laravel 8


jika proses instalasi sudah selesai seperti pada gambar diatas, kemudian kita masuk kedalam directory project masukan perintah berikut cd perpus_api setelh itu jalankan project yang baru saja kita instal dengan cara mengetik perintah berikut:
php artisan serve

Membuat API menggunakan Laravel 8

buka browser gunakan Chrome atau Mozilla Firefox masukan alamat diatas http://127.0.0.1:8000 maka akan muncul tampilan seperti berikut :
Membuat API menggunakan Laravel 8

Langkah#5

pada langkah ini kita akan melakukan beberapa langkah untuk membuat API diantaranya adalah :
  1. Membuat database 
  2. Membuat tabel menggunakan migration
  3. Mengisi tabel menggunakan seeder

Membuat database 

untuk pembuatan database silahkan anda buka phpmyadmin kemudian buatlah sebuah database baru dengan nama perpus_api

Membuat tabel menggunakan migration

Laravel menyediakan sebuah fitur untuk pembuatan tabel, namanya adalah migration dengan fitur ini kita tidak perlu membuat database secara manual atau membuka phpmyadmin atau menjalankan script SQL, namun dengan script php dan penggunaan library yang tersedia kita sudah dapat membuat database. fitur ini sangat berguna karena kita tidak perlu membuka buka lagi aplikasi lain ketika membuat sebuah program. sebelum membuat database kita perlu mengatur koneksi antara project dan database dengan membuka file .env, ubah file tersebut seperti pada gambar berikut :
Membuat API menggunakan Laravel 8

langkah selanjutnya adalah, jalankan perinta berikut untuk membuat file migration :
php artisan make:migration create_buku_table
kemudian buka file create_table_buku pada folder database/migration dan masukan coding sperti berikut :
Membuat API menggunakan Laravel 8

Jalankan file migration yang sudah kita buat dengan membuka lagi cmd kemudian masukan perintah berikut :
php artisan migrate
silahkan cek pada phpmyadmin jika berhasil sebuah tabel baru akan muncul pada database perpus_api, namun jika terjadi error silahkan cek lagi file migration buku_table mungkin ada kesalahan pada pengetikan coding.

Mengisi tabel menggunakan seeder

Selanjutnya kita akan mengisi tabel yang sudah kita buat dengan menggunakan seeder, seeder adalah sebuah fitur yang ada pada laravel untuk mengisi tabel menggunakan coding, buatlah sebuah seeder baru pada project anda dengan mengetik perintah sebagai berikut :
php artisan make:seeder BukuSeeder
Buka File tersebut kemudian modifikasi menjadi sperti berikut :
<?php

namespace Database\Seeders;

use Carbon\Carbon;
use Illuminate\Database\Seeder;
use Illuminate\Support\Facades\DB;

class BukuSeeder extends Seeder
{
    /**
     * Run the database seeds.
     *
     * @return void
     */
    public function run()
    {
        $faker = \Faker\Factory::create('id_ID');
        for($i=0;$i<10;$i++){
            DB::table("Bukus")->insert([
                "kode_buku" => $faker->unique()->name,
                "judul" => $faker->name,
                "pengarang" => $faker->name,
                "isbn" => $faker->numberBetween(1000, 1500),
                "tahun" => $faker->numberBetween(2000, 2020),
                'created_at' => Carbon::now(),

            ]);
        }
    }
}
Jalankan seeder yang kita buat, namun sebelum itu kita perlu mendambahkan class BukuSeeder pada pada Folder Database/Seeders/DatabaseSeeder.php, modifikasi file tersebut menjadi seperti berikut :
<?php

namespace Database\Seeders;

use Illuminate\Database\Seeder;

class DatabaseSeeder extends Seeder
{
    /**
     * Seed the application's database.
     *
     * @return void
     */
    public function run()
    {
        $this->call(BukuSeeder::class);
    }
}
selanjutnya kita jalankan perintah pada cmd
php artisan db:seed
atau
php artisan db:seed --class=BukuSeeder
Periksa kembali tabel buku pada database anda jika muncul data baru sebanyak 10 baris berarti seeder anda sudah berhasil dijalankan.

Membuat Application Programming Interface (API)

untuk membuat API kita perlu membuat model terlebih dahulu agar aplikasi dapat menampilkan data dari tabel yang kita buat, model yang akan kita buat akan dinamai dengan Buku.php file ini akan muncul secara otomatis setelah anda menjalankan perintah berikut :
php artisan make:model Buku
buka file Buku.php yang berada pada folder Models/Buku.php kemudian modifikasi file tersebut seperti berikut:
<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;

class Buku extends Model
{
    use HasFactory;
    protected $fillable = [
        'kode_buku', 'judul','pengarang','isbn','tahun'
    ];
}
Setelah itu kita akan membuat controller dengan nama BukuController, untuk membuat controller jalankan perintah berikut :
php artisan make:controller BukuController --resource --api
jika sudah silahkan modifikasi file tersebut yang ada pada Folder Http/controllers/BukuController.php kemudian modifikasi menjadi seperti berikut :
<?php

namespace App\Http\Controllers;

use App\Models\Buku;
use Facade\FlareClient\Http\Response;
use Illuminate\Database\QueryException;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Validator;
use Symfony\Component\HttpFoundation\Response as HttpFoundationResponse;
class BukuController extends Controller
{
    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function index()
    {
        $buku=Buku::orderBy('created_at','DESC')->paginate(5);
        $response=[
            'message'=>'Data Buku',
            'data'=>$buku
        ];

        return response()->json($response,HttpFoundationResponse::HTTP_OK);
    }

    /**
     * Store a newly created resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Illuminate\Http\Response
     */
    public function store(Request $request)
    {
        $validator=Validator::make($request->all(),[
            "kode_buku" => ['required'],
            "judul" =>['required'],
            "pengarang" =>['required'],
            "isbn" => ['required'],
            "tahun" =>['required']
        ]);

        if($validator->fails()){
            return response()->json($validator->errors(),
            HttpFoundationResponse::HTTP_UNPROCESSABLE_ENTITY);


        }

        try{
            $buku=Buku::create($request->all());

            $response=[
                'message'=>'Berhasil disimpan',
                'data'=>$buku
            ];

            return response()->json($response,HttpFoundationResponse::HTTP_CREATED);
        }catch(QueryException $e){
            return response()->json([
                'message'=>"Gagal ".$e->errorInfo,
            ]);
        }
    }

    /**
     * Display the specified resource.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function show($id)
    {
        //
    }

    /**
     * Update the specified resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function update(Request $request, $id)
    {
        //
    }

    /**
     * Remove the specified resource from storage.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function destroy($id)
    {
        //
    }
}

Mengetes API menggunakan aplikasi Postman