Laravel Tutorials

Using Fluent to Work With HTTP Client Responses in Laravel

Published
Using Fluent to Work With HTTP Client Responses in Laravel image

In Laravel 11.2.0, we got a fluent() helper to conveniently convert array data into a Fluent instance. Now, starting in Laravel 11.35, we have a convenient method for transforming an HTTP client response into a fluent instance:

use Illuminate\Support\Facades\Http;
 
$response = Http::get('https://jsonplaceholder.typicode.com/posts')->fluent();
 
$response->get('0.title'); // sunt aut facere...
$response->collect()->pluck('title'); // ["sunt aut facere...", "qui est esse
", ...]

Another neat feature is converting JSON data into specific types. Take this example where we can convert a string date into a Carbon instance:

use Illuminate\Support\Facades\Http;
 
$response = Http::get('https://api.chucknorris.io/jokes/random')->fluent();
 
$response->date('created_at');
$response->date('updated_at');
 
/*
Illuminate\Support\Carbon @1578231741 {#261 ▼ // routes/web.php:9
date: 2020-01-05 13:42:21.455187 UTC (+00:00)
}
*/

Fluent also supports other helpful types like boolean, enum, array of enum, and more. One of my favorites is using familiar methods like only and except to retrieve specific data:

use Illuminate\Support\Facades\Http;
 
$response = Http::get('https://api.chucknorris.io/jokes/random')->fluent();
 
$response->except('categories'),
/*
array:6 [▼ // routes/web.php:9
"created_at" => "2020-01-05 13:42:19.897976"
"icon_url" => "https://api.chucknorris.io/img/avatar/chuck-norris.png"
"id" => "KqoQdIJdSE2ezokPmHSvdw"
"updated_at" => "2020-01-05 13:42:19.897976"
"url" => "https://api.chucknorris.io/jokes/KqoQdIJdSE2ezokPmHSvdw"
"value" => "One night Chuck Norris had Chili for dinner. The very next day the Big Bang happened."
]
*/
 
$response->only('id', 'url', 'value');

Learn More

I would recommend getting familiar with the Fluent class in the Laravel API docs. Fluent uses the InteractsWithData trait, which gives us a bunch of convenient methods for working with Fluent data.

Paul Redmond photo

Staff writer at Laravel News. Full stack web developer and author.

Sponsored

laravelcloud logo
Laravel Cloud

Easily create and manage your servers and deploy your Laravel applications in seconds.

Visit Laravel Cloud

The latest

View all →
PhpStorm 2026.2 Released image

PhpStorm 2026.2 Released

Read article
Laravel Doctor: Diagnose Your App With One Artisan Command image

Laravel Doctor: Diagnose Your App With One Artisan Command

Read article
CPX: The Composer Package Executor for PHP image

CPX: The Composer Package Executor for PHP

Read article
Laravel AI SDK Adds Human-in-the-Loop Tool Approval image

Laravel AI SDK Adds Human-in-the-Loop Tool Approval

Read article
Pest 5 Released With Test Impact Analysis, Agent Verification, and Evals image

Pest 5 Released With Test Impact Analysis, Agent Verification, and Evals

Read article
Queue-SQL: Run Mass Deletes and Updates Across Parallel Queue Jobs image

Queue-SQL: Run Mass Deletes and Updates Across Parallel Queue Jobs

Read article