Optimice el manejo de respuestas HTTP con el método resource de Laravel
- Publicado el 05 diciembre, 2024
- Palabras: 53
¿Alguna vez has tenido problemas con los flujos de datos en el cliente HTTP de Laravel? ¡El nuevo método resource() hace que el manejo de las respuestas de los flujos de datos sea increíblemente sencillo! Exploremos esta mejora útil.

#La antigua y la nueva forma
El enfoque tradicional era bastante extenso:
// Modo antiguo
use GuzzleHttpPsr7StreamWrapper;
$response = Http::get($imageUrl);
Storage::disk('s3')->writeStream(
'thumbnail.png',
StreamWrapper::getResource($response->toPsrResponse()->getBody())
);
// Modo actual
$response = Http::get($imageUrl);
Storage::disk('s3')->writeStream('thumbnail.png', $response->resource());
#Ejemplo práctico
A continuación se explica cómo podría usarlo en un servicio de procesamiento de imágenes:
class ImageService
{
public function downloadAndStore(string $imageUrl, string $filename)
{
try {
$response = Http::get($imageUrl);
if ($response->successful()) {
Storage::disk('s3')->writeStream(
"images/{$filename}",
$response->resource()
);
return true;
}
Log::error("Failed to download image: {$imageUrl}");
return false;
} catch (Exception $e) {
Log::error("Error processing image: {$e->getMessage()}");
throw $e;
}
}
}
El nuevo método resource() simplifica el manejo de transmisiones en las respuestas de su cliente HTTP, haciendo que las operaciones de archivos sean más limpias e intuitivas.
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