GlosarioRouting

¿Qué es Response?

El objeto Response en Laravel representa la respuesta HTTP que se envia al navegador, permitiendo configurar el contenido, codigo de estado, cabeceras, cookies y tipo de respuesta (HTML, JSON, redirecciones, descargas).

Response

Laravel proporciona multiples formas de construir respuestas HTTP para enviar al cliente. Desde vistas HTML hasta respuestas JSON para APIs.

Tipos de respuestas

// Vista HTML
return view('posts.index', ['posts' => $posts]);

// Respuesta JSON
return response()->json([
    'message' => 'Post creado correctamente',
    'post' => $post,
], 201);

// Redireccion
return redirect()->route('posts.index')->with('success', 'Guardado');
return back()->withErrors(['email' => 'Email no valido']);

// Descarga de archivo
return response()->download($pathToFile, 'nombre.pdf');

// Sin contenido
return response()->noContent(); // 204

API Resources

Para APIs, Laravel ofrece API Resources que transforman modelos Eloquent en respuestas JSON estructuradas.

return new PostResource($post);           // Un recurso
return PostResource::collection($posts);   // Coleccion

Respuesta personalizada

return response('Contenido', 200)
    ->header('Content-Type', 'text/plain')
    ->cookie('nombre', 'valor', 60);

Laravel tambien soporta respuestas de streaming, Server-Sent Events y respuestas de tipo streamed download para archivos generados dinamicamente.