Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

102
Visualizações
La mejor práctica de filtrado dinámico de API REST

Nuestro equipo está desarrollando una API de back-end usando Node.JS, TypeScript y TypeORM (Oracle), somos relativamente nuevos en el uso de esta pila y tenemos algunas dudas sobre las mejores prácticas para filtrar dinámicamente una gran cantidad de datos.

Considerando una tabla con 20 registros, podemos llevar toda la información a la interfaz y filtrar directamente en el navegador, pero considerando una tabla con 1 millón de registros, supongo que necesitará una función de paginación y el usuario no podrá filtrar directamente en la interfaz

La forma en que trato de resolver este problema es crear un objeto con todos los filtros generados por el usuario y enviarlo a pedido del cuerpo a la API, procesando la información y devolviendo los datos filtrados.

Teniendo en cuenta que estoy usando TypeORM queryBuilder, creé la siguiente función para implementar esta lógica:

 interface IFilters { entity: string; key: string; value: string; type: string; }
 function filterQueryBuilder( query: SelectQueryBuilder<any>, filters: IFilters[] ): SelectQueryBuilder<any> { if (filters.length === 0) { return query; } filters.forEach((filter) => { if (filter.type === "in") { query.andWhere(`${filter.entity}.${filter.key} IN (:...values)`, { values: filter.value, }); } if (filter.type === "like") { query.andWhere(`${filter.entity}.${filter.key} LIKE :value`, { value: `%${filter.value}%`, }); } if (filter.type === "equal") { query.andWhere(`${filter.entity}.${filter.key} = :value`, { value: filter.value, }); } }); return query; }

Funciona, pero se ve un poco sucio y la interfaz deberá indicar la entidad, así que creo que esa no es la forma correcta.

¿Puede alguien indicarme una mejor manera de hacerlo? O un artículo con una mejor solución, no es necesario que esté en TypeORM.

Gracias por adelantado

about 4 years ago · Juan Pablo Isaza
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda