Saltar al contenido principal

Peticiones y respuestas

En Laravel, la gestión de peticiones (requests) y respuestas (responses) es fundamental para manejar la comunicación entre el cliente y el servidor. La información enviada por el cliente se accede a través del objeto Request y las respuestas se generan usando el objeto Response o métodos auxiliares de los controladores.

Manejo de peticiones

El objeto Request permite acceder a todos los datos de la solicitud HTTP, incluyendo parámetros, cabeceras, cuerpo de la petición y archivos:

use Illuminate\Http\Request;

Route::post('/usuarios', function (Request $request) {
$nombre = $request->input('nombre');
$email = $request->input('email');
return response()->json(['nombre' => $nombre, 'email' => $email]);
});

Algunas propiedades y métodos útiles de Request:

  • $request->all() → Obtiene todos los datos enviados.
  • $request->input('campo') → Obtiene un campo específico.
  • $request->query('param') → Parámetros de consulta (?param=value).
  • $request->route('id') → Parámetros de la ruta.
  • $request->header('X-Custom-Header') → Cabeceras HTTP.
  • $request->file('archivo') → Archivos subidos.

Generación de respuestas

Laravel facilita enviar respuestas HTTP en distintos formatos:

// Respuesta JSON
return response()->json(['mensaje' => 'Operación exitosa'], 200);

// Respuesta con código HTTP
return response('Recurso creado', 201);

// Redirección
return redirect('/inicio');

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

También se pueden configurar cabeceras y cookies:

return response('Contenido')
->header('X-Custom-Header', 'Valor')
->cookie('token', 'abc123', 60);

Buenas prácticas y convenciones

  • Validar siempre los datos recibidos antes de procesarlos.
  • Mantener las respuestas consistentes, preferiblemente en formato JSON para APIs.
  • Devolver códigos HTTP adecuados según la acción realizada (200, 201, 400, 401, 404, etc.).
  • Evitar lógica compleja directamente en rutas; delegar a controladores o servicios.
  • Manejar errores y excepciones mediante exception handling y middleware de Laravel.