Zttp è un nuovo package di Adam Wathan, un wrapper di Guzzle progettato per apportare una sintassi chiara e dunque semplificare l’utilizzo di Guzzle nei casi di utilizzo comuni.

Vediamo nel dettaglio Zttp

Ecco un esempio di una richiesta Post con un Header personalizzato:

$response = Zttp::withHeaders(['Fancy' => 'Pants'])->post($url, [
    'foo' => 'bar',
    'baz' => 'qux',
]);

$response->json();

Scrivendolo con Guzzle il risultato sarebbe questo:

$client = new Client();
$response = $client->request('POST', $url, [
    'headers' => [
        'Fancy' => 'Pants',
    ],
    'form_params' => [
        'foo' => 'bar',
        'baz' => 'qux',
    ]
]);

json_decode($response->getBody());

Come puoi notare, Zttp semplifica il codice per creare la Request e restituisce automaticamente il Response JSON.

Ecco qualche altro esempio:

Perform a Post with Form Params

$response = Zttp::asFormParams()->post($url, [
    'foo' => 'bar',
    'baz' => 'qux',
]);

Patch Request

$response = Zttp::patch($this->url('/patch'), [
    'foo' => 'bar',
    'baz' => 'qux',
]);

Put Request

$response = Zttp::put($this->url('/put'), [
    'foo' => 'bar',
    'baz' => 'qux',
]);

Delete Request

$response = Zttp::delete($this->url('/delete'), [
    'foo' => 'bar',
    'baz' => 'qux',
]);

Aggiungere un Header Accept

$response = Zttp::accept('banana/sandwich')->post($url);

Evitare redirect

$response = Zttp::withoutRedirecting()->get($url);

Ci sono altri esempi nel Zttp test file. Il package è ancora in fase di sviluppo, per i retroscena potete anche ascoltare la Full Stack Radio 😉 .

Per altre informazioni potete fare riferimento al progetto su GitHub.

Fonte Laravel News