Tanggal :15 Juli 2020
Laravel 7 - HTTP Client

Laravel 7 : HTTP Client

Artikel ini bagian ke 2 dari 2 seri dalam artikel berseri "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.

Share

Hi Saya Amirul, Saya mengajarkan koding melalui screencast di Kawan Koding, saya juga menulis Artikel di Kawan Koding.

4 Comments

  1. Junnaedi Reply

    Bang update blog tentang package package laravel kek sanctum, livewere dan lain lain dongg. liat artikel ini jadi pen explore lebih tentang laravel

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *