Optimiza la configuración del cliente HTTP con el método globalOptions de Laravel
- Publicado el 25 marzo, 2025
- Palabras: 181
Gestionar la configuración del cliente HTTP en toda la aplicación Laravel puede ser un desafío. El nuevo método globalOptions proporciona un enfoque centralizado para configurar el comportamiento predeterminado del cliente HTTP.

Cuando tu aplicación interactúa con múltiples API externas, configurar el cliente HTTP con tiempos de espera, encabezados u otras opciones consistentes suele generar código repetitivo. El cliente HTTP de Laravel ahora permite definir estas configuraciones globalmente, lo que garantiza un comportamiento consistente y reduce la duplicación.
Veamos cómo funciona el nuevo método globalOptions:
use IlluminateSupportFacadesHttp;
// Set global options in a service provider
Http::globalOptions([
'timeout' => 5,
'connect_timeout' => 2,
]);
Una vez configuradas, estas opciones se aplican a todas las solicitudes HTTP realizadas a través del cliente HTTP de Laravel, a menos que se anulen explícitamente para solicitudes específicas.
#Ejemplo práctico
Un caso de uso común es configurar tiempos de espera consistentes, lógica de reintento o encabezados predeterminados en toda la aplicación. Así es como se puede configurar esto en un proveedor de servicios:
<?php
namespace AppProviders;
use IlluminateSupportFacadesHttp;
use IlluminateSupportServiceProvider;
class AppServiceProvider extends ServiceProvider
{
/**
* Bootstrap any application services.
*/
public function boot(): void
{
Http::globalOptions([
// Set reasonable timeouts
'timeout' => 10,
'connect_timeout' => 3,
// Add default headers
'headers' => [
'User-Agent' => 'MyApp/1.0',
'Accept' => 'application/json',
],
// Configure default retry behavior
'retry' => 3,
'retry_delay' => 100,
]);
}
}
Estas configuraciones globales proporcionan una base consistente para todas las solicitudes HTTP, pero aún puedes anular opciones específicas cuando sea necesario:
// Uses global options plus specific ones for this request
Http::withToken('api-token')
->post('https://api.example.com/endpoint', [
'data' => 'value'
]);
// Override timeout just for this request
Http::timeout(30)
->get('https://slow-api.example.com/endpoint');
Cabe destacar que si se llama a globalOptions varias veces, las llamadas subsiguientes anularán por completo la configuración anterior, no se fusionarán con ella. Planifique la configuración de su service provider en consecuencia para garantizar que todas sus opciones globales se configuren en una sola llamada.
Fuente: Harris Raftopoulos
Inicia la conversación
Hazte miembro de Antonio Jenaro para comenzar a comentar.
Regístrate ahora¿Ya estás registrado? Inicia sesión