Tanggal :11 September 2024
Laravel 7 - HTTP Client

Laravel 7 : HTTP Client

Artikel ini bagian ke 2 dari total 2 artikel di seri Fitur Baru Laravel 7

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 token 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.

Series Navigation<< Laravel 7 : Route Model Binding Lebih Praktis
Share

Hai semua, saya Amirul seorang Software Engineer, suka membuat konten pembelajaran berupa artikel, video tutorial maupun podcast

8 Comments

Tinggalkan Balasan