
Transforma los datos de respuesta HTTP con el método fluent de Laravel
- Publicado el 17 enero, 2025
- Palabras: 38
Transforma los datos de respuesta HTTP sin esfuerzo con el nuevo método fluent() de Laravel. Esta incorporación al cliente HTTP te da acceso seguro a las respuestas de su API.

#Uso básico
Convierta sus respuestas HTTP en instancias fluidas:
use Illuminate\Support\Facades\Http;
$response = Http::get('https://api.example.com/products/1')->fluent();
$price = $response->float('price'); // 420.69
$colors = $response->collect('colors'); // Collection(['red', 'blue'])
$onSale = $response->boolean('on_sale'); // true
$stock = $response->integer('current_stock'); // 69
#Ejemplo práctico
A continuación te indicamos cómo puedes utilizarlo en un servicio de producto:
class ExternalProductService
{
public function fetchProductDetails(string $productId)
{
$response = Http::get("https://api.example.com/products/{$productId}")
->throw()
->fluent();
return new ProductDetails([
'price' => $response->float('price'),
'stock_level' => $response->integer('current_stock'),
'is_available' => $response->boolean('in_stock'),
'variants' => $response->collect('variants')->map(function ($variant) {
return [
'sku' => $variant['sku'],
'quantity' => (int) $variant['quantity'],
'price' => (float) $variant['price']
];
}),
'metadata' => $response->collect('metadata')->toArray(),
'last_updated' => $response->date('updated_at')
]);
}
public function updateInventory(string $productId, int $quantity)
{
$response = Http::put("https://api.example.com/inventory/{$productId}", [
'quantity' => $quantity
])->fluent();
return [
'success' => $response->boolean('success'),
'new_quantity' => $response->integer('current_stock'),
'timestamp' => $response->date('processed_at')
];
}
}
El método fluent() proporciona una forma limpia y segura de trabajar con datos de respuesta de API.
Fuente: Harris Raftopoulos
Artículos relacionados
Inicia la conversación
Hazte miembro de Antonio Jenaro para comenzar a comentar.
Regístrate ahora¿Ya estás registrado? Inicia sesión