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.

Transforma los datos de respuesta HTTP con el método fluent de Laravel

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

Antonio Jenaro

Desarrollador backend especializado en PHP y Laravel, con sede en Santander, Cantabria. Más de 15 años de experiencia en el desarrollo de aplicaciones web a medida y en la modernización de código heredado.

Archivado en:

Fuente: Harris Raftopoulos

Artículos relacionados

Manejo fluido de arrays en Laravel, el helper fluent
538

Manejo fluido de arrays en Laravel, el helper fluent

Gestión de atributos anidados con el método set de la clase Fluent de Laravel
616

Gestión de atributos anidados con el método set de la clase Fluent de Laravel

Inicia la conversación

Hazte miembro de Antonio Jenaro para comenzar a comentar.

Regístrate ahora

¿Ya estás registrado? Inicia sesión