Cara Memanggil RESTful API di Laravel
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 memintaguzzlehttp/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.
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 laravelHttp::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 responsedata
,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 keyid
.{{$item['email]}}
: mencetak data array dengan keyemail
dan seterusnyafirst_name
,last_name
danavatar
.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::