Cara Memanggil RESTful API di Laravel

Cara Memanggil RESTful API di Laravel
Konten Halaman

Di Zaman sekarang untuk membangun aplikasi sangat lah ketergantungan untuk menggunakan RESTful API maka kali ini saya mencoba membagi pengalaman menggunakan project Framework untuk memanggil RESTful API di Laravel.

Video tutorial : Menggunakan cURL untuk GET dan POST ke API di PHP atau di Laravel

Berikut ini video pembahasan cara Menggunakan cURL untuk GET dan POST ke API di PHP cara ini bisa digunakan di Laravel simak videonya berikut ini.

Install Laravel

okay disini kita mencoba untuk menginstall laravel dulu bagi teman-teman yang masih bingung untuk install laravel bisa kunjungi tutorial lengkapnya untuk membuat project dari awal dengan laravel ada di Cara Install Laravel di Windows .

disini saya menggunakan laravel project yang kosong belum diisi apapun.

Install dan menggunakan Guzzle library

untuk memanggil HTTP Request kita menggunakan library Guzzle yang cukup populer kalian bisa menginstall Guzzle dengan bantuan composer di PHP console kalian, bagi teman-teman yang masih bingung bagaimana cara menjalankan PHP di CMD Windows secara lengkap ada di Cara install PHP di Windows dan Berjalan di CMD (Command Prompt).

berikut ini command atau perintah untuk menginstall guzzlehttp di Laravel:

composer require guzzlehttp/guzzle:^7.0

Penjelasan:

  • composer : composer adalah sebuah aplikasi jembatan library atau pustaka untuk kita minta dan di install dalam project kita yang.
  • require : perintah untuk meminta
  • guzzlehttp/guzzle:^7.0 : name pustaka atau library yang diminta kita install dan memiliki versi di akhirnya.

Ata bisa lihat video ini untuk menggunakan Guzzle library yang sudah di sederhanakan menjadi HTTP client Laravel

akan tetapi kita membutuhkan spesifikasi Requirement environment :

  • menggunakan PHP 7.2.5 .
  • mengaktifkan allow_url_fopen di settingan php.ini.
  • menggunakan cURL >= 7.19.4 yang mendukung OpenSSL.

Memanggil API di laravel project

di project ini saya menggunakan laravel varsi yang ke 7, di laravel 7 terdapat fungsi bawaan atau secara otomatis library sudah di bungkus menjadi Illuminate\Support\Facades\Http. berikut ini contoh menggunakan pemanggilan Rest API di laravel 7 di bagian sebuah controller yang kita gunakan.

Mari kita coba pemanggilan HTTPS RESTful dari endpoint https://reqres.in/api/users/ yang isisnya merupakan data users id, email, first_name, last_name, dan avatar.

ini contoh responses GET dari endpoint https://reqres.in/api/users/ yang kita ambil dari key data dari key tersebut memiliki id, email first_name, last_name dan avatar yang akan kita cetak di view blade kepunyaan bawaan dari laravel.

contoh responses http reqres.in

setelah melihat bentukan respon kita bisa ambil key yang artinya akan di decode diubah menjadi key array di php laravel setelah itu dikirim ke view blade laravel

Pemakaian pemanggilan HTTP RESTful di controller laravel:

pengkodean dibawah ini saya taruh di controller tepatnya di \app\Http\Controllers\Users.php

Illuminate\Support\Facades\Http

class Users extends Controller
{
    function index(Request $request){
        $on_page = is_null($request->get('page')) ? 1 : $request->get('page');

        $res = Http::get('https://reqres.in/api/users?page='. $on_page);

        $data['users'] = $res->json()['data'];
        $data['max_pages'] = $res->json()['total_pages'];

        return view('index', $data);

    }

    function detail($id){

        $res = Http::get('https://reqres.in/api/users/'. $id);

        $data['user'] = $res->json()['data'];

        return view('detail', $data);
    }
}

Penjelasan

  • Illuminate\Support\Facades\Http : mendefinisikan library HTTP bawaan laravel
  • Http::get : di bagian ini adalah proses dan melakukan pemanggilan API kemudian respon API di simpan di variabel $res, setelah itu nyalakan decode menjadi array dengan cara $res->json() dan diambil bagian response data,
  • return view('index', $data); : response api di kirim ke view laravel blade dalam bentuk array.

Menampilkan Data RESTful API di view Laravel

setelah data dipanggil di controller selanjutnya data dipindahkan ke view laravel dalam bentuk Array

// resources\views\index.blade.php
<table id="table_users">
  <tr>
    <th>ID</th>
    <th>EMAIL</th>
    <th>FIRST NAME</th>
    <th>LAST NAME</th>
    <th>FOTO</th>
    <th></th>
  </tr>
  @foreach ($users as $item)
  <tr>
    <td>{{$item['id']}}</td>
    <td>{{$item['email']}}</td>
    <td>{{$item['first_name']}}</td>
    <td>{{$item['last_name']}}</td>
    <td><img src="{{$item['avatar']}}" /></td>
    <td>
      <a
        class="btn-detail"
        href="{{route('user_detail', ['id' => $item['id'] ])}}"
        >More Detail</a
      >
    </td>
  </tr>
  @endforeach
</table>

Penjelasan:

  • @foreach ($users as $item) : inisialisasi looping atau perulangan dalam view laravel dari variable$users kemudian di pindah ke $item.
  • {{$item['id]}} : mencetak data array dengan key id.
  • {{$item['email]}} : mencetak data array dengan key email dan seterusnya first_name, last_name dan avatar.
  • href="{{route('user_detail', ['id' => $item['id'] ])}}" : adalah pemanggilan fungsi route untuk mencetak url yang kita definisikan sebagai user_detail di file route.php dan mengirimkan array id berisi dari variable id item.

Kesimpulan:

Melakukan pemanggilan HTTP REST yang merupakan singkatan dari REpresentational State Transfer di projek laravel sangat mudah dengan bantuan library di php guzzle dan dikemas secara default oleh laravel menjadi Illuminate\Support\Facades\Http dan Http::