- Laravel 7 : Route Model Binding Lebih Praktis
- Laravel 7 : HTTP Client
Assalamualaikum Warohmatulloh Wabarokatuh, setelah membahas peningkatan pada route model binding di Laravel 7, sekarang kita akan bahas hal baru di Laravel 7, yaitu HTTP Client
.
Di Laravel 7 kini tersedia HTTP Client
bawaan dari framework
, ini sebenarnya adalah sebuah wrapper
dari Guzzle dengan API
minimal yang fokus pada penggunaan yang umum, yang membuat kita bisa membuat HTTP request
keluar untuk berkomunikasi dengan web
lainnya.
Sebelum beraksi pastikan kawan kawan sudah menginstal Guzzle pada aplikasi kawan kawan, secara default Laravel sudah menyertakan package
ini.
composer require guzzlehttp/guzzle
Mengirimkan Request
Untuk membuat sebuah request, kita bisa gunakan method get
, post
, put
, patch dan delete
, sebagai awalan kita coba gunakan method GET
untuk membuat request sederhana.
use Illuminate\Support\Facades\Http;
$response = Http::get('http://situs.com');
Method get akan mengembalikan nilai sebuah instance dari Illuminate\Http\Client\Response
yang memberikan macam macam method untuk reponse
.
$response->body() : string; $response->json() : array; $response->status() : int; $response->ok() : bool; $response->successful() : bool; $response->serverError() : bool; $response->clientError() : bool; $response->header($header) : string; $response->headers() : array;
Objek Illuminate\Http\Client\Response
mengimplementasikan interfaces
PHP ArrayAccess
, yang membuat kita bisa mengakses data dari response
JSON
secara langsung pada response
.
return Http::get('http://situs.com/users/1')['name'];
Request Dengan Data
Tentunya ketika kita mengirimkan sebuah request
dengan method POST
, PUT
dan PATCH
kita akan mengirimkan data tambahan pada request
tersebut. Jadi pada method tersebut menerima sebuah data array
pada parameter kedua, secara default data yang dikirimkan akan menggunakan tipe application/json
.
$response = Http::post('http://situs.com/users', [
'name' => 'Amirul',
'role' => 'Web Developer',
]);
Headers
Kita bisa menambahkan headers
pada request
dengan method withHeaders
. Method withHeaders
ini menerima array
key / value
.
$response = Http::withHeaders([
'X-First' => 'foo',
'X-Second' => 'bar'
])->post('http://situs.com/users', [
'name' => 'Amirul',
]);
Authentication
Kita bisa mengirimkan authencation
basic
dan digest
menggunakan method withBasicAuth
dan withDigestAuth
.
// Basic authentication...
$response = Http::withBasicAuth('amirul@kawankoding.id', 'secret')->post(...);
// Digest authentication...
$response = Http::withDigestAuth('amirul@kawankoding.id', 'secret')->post(...);
Bearer Token
Jika kita ingin menambahkan authenctication
dengan bearer toke
n dengan cepat, kita bisa gunakan method withToken
.
$response = Http::withToken('token')->post(...);
Mungkin sekian sedikit pembahasan tentang HTTP Client di Laravel 7, selengkapnya bisa baca dokumentasinya.
Wassalamualaikum Warohmatulloh Wabarokatuh.
ini bisa jadi untuk menggantikan curl ya mas
iya betul mas, ini wrapper dari Guzzle.
Bang update blog tentang package package laravel kek sanctum, livewere dan lain lain dongg. liat artikel ini jadi pen explore lebih tentang laravel
Iya nanti ada bahasan sanctum …
bang kalau untuk multiple form data terus saya juga punya data array gimana ya
untuk upload file?
kalau get bearer token gimana mas? misalnya pas get data diharusnya ada bearer token
Http::withToken(‘token’)->post(/* … */);