Saltar al contenido principal

Peticiones y respuestas

El manejo de peticiones (requests) y respuestas (responses) es fundamental en Lumen, ya que permite recibir datos de los clientes, procesarlos y devolver la información adecuada según el contexto de la aplicación.

Manejo de peticiones

Las solicitudes HTTP se representan mediante el objeto Request de Lumen, que contiene toda la información enviada por el cliente: parámetros, cabeceras, cuerpo de la petición, archivos adjuntos, etc.

Para acceder a los datos de la solicitud dentro de un controlador o closure:

use Illuminate\Http\Request;

$router->post('/usuarios', function (Request $request) {
$nombre = $request->input('nombre'); // Obtener un parámetro específico
$edad = $request->input('edad', 18); // Valor por defecto si no existe
return response()->json([
'nombre' => $nombre,
'edad' => $edad
]);
});

Algunas funciones útiles del objeto Request:

  • $request->all() → devuelve todos los parámetros de la solicitud.
  • $request->has('campo') → verifica si un parámetro existe.
  • $request->file('archivo') → obtiene archivos subidos.
  • $request->header('Authorization') → accede a cabeceras HTTP.

Generación de respuestas

Las respuestas se generan usando el helper response() o devolviendo directamente cadenas o arrays. Para APIs, es común devolver JSON:

return response()->json([
'mensaje' => 'Usuario creado correctamente',
'usuario' => $usuario
], 201); // 201: recurso creado

También se pueden devolver respuestas simples:

return response('Página no encontrada', 404);
return response()->redirect('/inicio');

Respuestas con cabeceras y cookies

Se pueden personalizar cabeceras y cookies fácilmente:

return response('Contenido con cabeceras', 200)
->header('Content-Type', 'text/plain')
->cookie('token', 'abc123', 60); // cookie válida por 60 minutos

Buenas prácticas y convenciones en peticiones y respuestas

  • Validar siempre los datos recibidos antes de procesarlos.
  • Usar respuestas consistentes y coherentes en toda la aplicación, preferiblemente JSON en APIs.
  • Devolver códigos HTTP adecuados según la acción (200 OK, 201 Created, 400 Bad Request, 401 Unauthorized, 404 Not Found, etc.).
  • Evitar lógica compleja dentro de closures de rutas; delegar a controladores o servicios.
  • Manejar errores y excepciones de manera centralizada para no exponer información sensible.