Uso de Query Params y Path Params en el Routing de Express

Uso de Query Params y Path Params en el Routing de Express

Introducción

Demystifying Spring Boot. The basics of API development in Spring… | by  Jordan Williams | Better Programming

Cuando trabajamos con Express.js, uno de los frameworks más populares para construir aplicaciones backend en Node.js, el manejo eficiente de rutas es fundamental. Los Query Params y Path Params son dos formas clave de recibir y procesar datos desde el cliente al servidor a través de URLs. En este artículo, exploraremos qué son, cómo funcionan, sus diferencias, y cómo usarlos con ejemplos prácticos y casos de uso.

¿Qué son los Query Params y Path Params?

Query Params

  • Son parámetros que se pasan en la URL después del símbolo ?.
  • Se utilizan para enviar datos no estructurados, como filtros, búsquedas o configuraciones opcionales.
  • Ejemplo:
				
					https://miapp.com/productos?categoria=tecnologia&orden=asc
				
			
  • Aquí, los parámetros son categoria y orden.

Path Params

  • Son parte del propio camino de la URL y suelen ser valores dinámicos que identifican recursos específicos.
  • Ejemplo:
				
					https://miapp.com/productos/123
				
			
  • Aquí, 123 es un parámetro que identifica un producto.

Diferencias Entre Query Params y Path Params

CaracterísticaQuery ParamsPath Params
Posición en la URLDespués del ?Dentro del camino de la ruta
Formatoclave=valor separados por &Valores dinámicos en la URL
PropósitoDatos opcionales (filtros, paginación)Identificación de recursos específicos
Uso ComúnFiltros, configuracionesRecursos como ID o nombres

Cómo Utilizar Query Params y Path Params en Express

Configuración Básica del Proyecto

Primero, instala Express:

				
					npm install express
				
			

Crea un archivo app.js con la configuración básica:

				
					const express = require('express');
const app = express();
const PORT = 3000;

app.listen(PORT, () => {
  console.log(`Servidor ejecutándose en http://localhost:${PORT}`);
});
				
			

Uso de Query Params

Los Query Params se obtienen del objeto req.query.

Ejemplo Práctico: Filtrar Productos por Categoría y Orden

				
					app.get('/productos', (req, res) => {
  const { categoria, orden } = req.query;

  if (!categoria || !orden) {
    return res.status(400).send('Faltan parámetros en la consulta');
  }

  res.send(`Filtrando productos de la categoría ${categoria} en orden ${orden}`);
});
				
			

Prueba en el Navegador o Postman:

				
					http://localhost:3000/productos?categoria=tecnologia&orden=asc
				
			

Resultado:

				
					Filtrando productos de la categoría tecnologia en orden asc
				
			

Caso de Uso: Paginación

				
					app.get('/productos', (req, res) => {
  const { pagina = 1, limite = 10 } = req.query;

  res.send(`Mostrando página ${pagina} con un límite de ${limite} productos por página`);
});
				
			

Prueba:

				
					http://localhost:3000/productos?pagina=2&limite=5
				
			

Uso de Path Params

Los Path Params se obtienen del objeto req.params.

Ejemplo Práctico: Obtener un Producto por su ID

				
					app.get('/productos/:id', (req, res) => {
  const { id } = req.params;
  res.send(`Producto solicitado con ID: ${id}`);
});
				
			

Prueba:

				
					http://localhost:3000/productos/123
				
			

Resultado:

				
					Producto solicitado con ID: 123
				
			

Caso de Uso: Operaciones CRUD

				
					app.get('/usuarios/:id', (req, res) => {
  const { id } = req.params;
  res.send(`Obteniendo datos del usuario con ID: ${id}`);
});

app.delete('/usuarios/:id', (req, res) => {
  const { id } = req.params;
  res.send(`Usuario con ID ${id} eliminado exitosamente`);
});

				
			

Combinando Query Params y Path Params

Es común usar ambos para manejar recursos y configuraciones al mismo tiempo.

Ejemplo Práctico: Filtrar Productos por Categoría en una Tienda Específica

				
					app.get('/tiendas/:tiendaId/productos', (req, res) => {
  const { tiendaId } = req.params;
  const { categoria, orden } = req.query;

  res.send(`Productos de la tienda ${tiendaId}, categoría ${categoria}, ordenados ${orden}`);
});
				
			

Prueba:

				
					http://localhost:3000/tiendas/5/productos?categoria=ropa&orden=desc

				
			

Resultado:

				
					Productos de la tienda 5, categoría ropa, ordenados desc
				
			

Buenas Prácticas en el Uso de Query Params y Path Params

  • Valida los Parámetros:
    Siempre verifica que los parámetros requeridos existan y sean válidos. Usa librerías como Joi o Express Validator.

  • Usa Rutas Semánticas:
    Diseña rutas claras y descriptivas.

    • Bueno: /usuarios/:id/perfil
    • Malo: /u/p
  • Documenta las Rutas:
    Utiliza herramientas como Swagger para documentar los endpoints.

Conclusión

El manejo de Query Params y Path Params es esencial para construir aplicaciones web robustas y funcionales con Express.js. Mientras que los Path Params ayudan a identificar recursos específicos, los Query Params permiten personalizar las consultas. Comprender cuándo y cómo utilizarlos no solo mejora la experiencia del usuario, sino que también organiza y optimiza el desarrollo de tu backend.

Links de referencia:

¿Qué son las rutas en Express.js?

Facebook
X
LinkedIn
Reddit
Pinterest
Threads

Post relacionados

Post recientes

Search