Filtrado avanzado con NestJS: El camino fácil

Aprende a gestionar consultas complejas en NestJS: validación y transformación con DTOs y ValidationPipe, usando un parser extendido para filtrado, paginación y ordenación.

15 sept 2025 • 3 min de lectura • Equipo Q2BSTUDIO

Inteligencia-Artificial-

Cuando se construye una API es habitual necesitar manejar parámetros de consulta complejos. Para proyectos reales, paginación, filtrado y ordenación son fundamentales para una API robusta y escalable. En un proyecto reciente con NestJs me enfrenté a este reto y descubrí que no basta con definir DTOs al vuelo: hay que validar y transformar las consultas adecuadamente para evitar entradas maliciosas y comportamientos inesperados.

Primeros pasos con NestJs: crea un proyecto con el CLI usando el comando nest new complex-query-filters y añade las librerías de validación y transformación con npm i class-validator class-transformer. Con esto tienes una API mínima, pero para aceptar consultas anidadas y complejas hay un ajuste importante en el arranque de la aplicación.

Declara la aplicación como tipo NestExpressApplication al crearla con NestFactory y configura el parser de query para que acepte estructuras extendidas. En otras palabras, en main.ts crea la app como una instancia de NestExpressApplication y luego llama a app.set pasando como clave query parser y como valor extended. Esto permite recibir parámetros como dateRange[lte]=2023-10-26T10:00:00.000Z y sort[category]=asc sin que Express los descarte o transforme de forma inesperada.

Validaciones, siempre incluidas. Para evitar inyecciones o propiedades inesperadas debemos definir DTOs que expresen claramente qué campos aceptamos. Un DTO de campos de búsqueda puede incluir propiedades como category y status con decoradores de class-validator para validar tipo, longitud y formato. Un DateRangeDto puede exponer operadores gte y lte validados como fechas, y un FiltersDto puede combinar status, category y dateRange. Para ordenación definimos un SortFieldsDto que solo permita asc o desc para determinadas columnas, por ejemplo category.

En el ejemplo práctico conviene combinar todo en un QueryDto que extienda FiltersDto e incluya además search, page, limit y sort. De este modo la estructura esperada en la query queda documentada y validada desde el servidor, lo que evita aceptar parámetros inesperados como search[magumbos] o dateRange[lt] que no forman parte del contrato.

La pieza que lo hace todo seguro es ValidationPipe. Antes de llamar a app.listen registra un pipe global con useGlobalPipes pasándole una instancia de ValidationPipe configurada con whitelist true, transform true, forbidNonWhitelisted true y transformOptions con enableImplicitConversion true. Con esto el servidor rechazará propiedades que no estén en los DTOs y convertirá tipos implícitamente cuando sea seguro hacerlo. Por ejemplo una petición con dateRange[lt]=today devolverá un Bad Request indicando que el atributo lt no está permitido.

Ejemplo de uso real de la API: una petición como https://localhost:3000/?dateRange[lte]=2023-10-26T10:00:00.000Z&search[status]=so&page=1&limit=10&sort[category]=asc producirá un objeto Query validado con dateRange.lte, search.status, page, limit y sort.category correctamente tipados y validados.

Lecciones y buenas prácticas: no confíes solo en soluciones mágicas. Leer la documentación y entender una librería permite a veces resolver problemas con cambios mínimos, como declarar el tipo de aplicación y ajustar el parser de consultas. Aun así, combinar esa configuración con DTOs claros y ValidationPipe es lo que garantiza seguridad y robustez en producción.

En Q2BSTUDIO aplicamos este tipo de buenas prácticas en nuestros desarrollos. Si necesitas aplicaciones a medida o software a medida que manejen consultas complejas y validación avanzada, nuestro equipo puede diseñar la arquitectura y los DTOs necesarios. También ofrecemos soluciones de inteligencia artificial e IA para empresas que se integran con APIs seguras y escalables.

Servicios y palabras clave que ofrecemos: desarrollo de aplicaciones a medida, software a medida, inteligencia artificial, ciberseguridad, servicios cloud aws y azure, servicios inteligencia de negocio, ia para empresas, agentes IA y power bi. Además de desarrollar backend robusto usamos prácticas de ciberseguridad y pentesting para proteger tus endpoints y evitar inyecciones o fugas de datos.

Si quieres que te ayudemos a diseñar un endpoint con filtrado avanzado, paginación y ordenación seguros o integrar inteligencia de negocio con Power BI y servicios cloud, en Q2BSTUDIO contamos con experiencia en estas áreas y podemos acompañarte desde el diseño hasta el despliegue y la monitorización.

Conclusión: con un pequeño ajuste en el parser de consultas de NestJs, DTOs bien diseñados y ValidationPipe configurado, puedes exponer endpoints potentes y seguros para filtrado avanzado. Aprende a aplicar estas técnicas y, si prefieres externalizar, nuestro equipo en Q2BSTUDIO está listo para ayudarte a construir soluciones a medida, seguras y escalables.

¿UNA PAUSA?

Juega un momento antes de irte

NUESTROS SERVICIOS

Cómo podemos ayudarte

Inteligencia artificial

Agentes de IA, chatbots y asistentes inteligentes que automatizan tareas y atienden a tus clientes 24/7 para mejorar la eficiencia de tu negocio.

Más info

Desarrollo de software

Aplicaciones web, móviles y de escritorio, intranets, e-commerce, SaaS y plataformas de gestión diseñadas para las necesidades concretas de tu empresa.

Más info

Servicios cloud

Migración, infraestructura, hosting gestionado, alta disponibilidad y seguridad en Microsoft Azure y Amazon Web Services para que tu negocio escale sin límites.

Más info

Ciberseguridad y pentesting

Auditorías de seguridad, test de intrusión (pentesting) y protección de aplicaciones, datos e infraestructura on-premise y cloud, con hacking ético y cumplimiento normativo.

Más info

Business Intelligence

Cuadros de mando y análisis de datos con Power BI: integramos tus fuentes, diseñamos dashboards y KPIs y convertimos tus datos en decisiones.

Más info

Automatización de procesos

Automatizamos tareas repetitivas y conectamos tus aplicaciones con n8n, Power Automate, Make y RPA, eliminando trabajo manual y aumentando la productividad.

Más info

Formación para empresas

Formamos a tus equipos en tecnología con criterio: desarrollo web, bases de datos, Git, buenas prácticas y seguridad, automatización con n8n, inteligencia artificial para empresas y creación de soluciones de IA con Azure AI Foundry.

Más info

Auditoría de código

Auditamos el código que creas tú, tu equipo o una IA: te decimos qué está bien y qué mejorar, lo securizamos y lo dejamos listo para producción, web o app.

Más info

Generación de imágenes con IA

Creamos por ti las imágenes que necesita tu negocio con inteligencia artificial: producto, redes, publicidad, ilustración y avatares. Tú nos dices qué quieres y te lo entregamos listo para usar.

Más info

Generación de vídeos con IA

Creamos por ti vídeos con inteligencia artificial: promocionales, para redes, presentadores virtuales, doblaje y animaciones. Nos cuentas la idea y te lo entregamos montado y listo para publicar.

Más info

Avatares conversacionales con IA

Creamos avatares conversacionales con IA —humanos digitales con cara y voz— que atienden a tus clientes y equipos con el conocimiento de tu empresa, en tu web, monitores interactivos, WhatsApp o Teams.

Más info

Marketing Online e IA

Google Ads, Meta Ads, LinkedIn Ads y posicionamiento en motores de IA (GEO/AEO): captamos clientes y hacemos que tu marca aparezca donde te buscan, también en ChatGPT, Gemini y Perplexity.

Más info

¿Tienes un proyecto en mente?

Cuéntanos tu visión y la convertimos en una solución de software. Sea cual sea el alcance, hacemos realidad tu idea.