Saltar al contenido
Explorar conocimiento

concepto · intermedio · 2 min de lectura

Filtrado

El filtrado permite a los clientes de una API seleccionar un subconjunto de recursos basándose en criterios específicos, reduciendo la cantidad de datos transferidos y procesados.

No requiere conocimientos previos.

Alcance en breve

Cubre

  • Filtering as an architectural concept

No cubre

  • implementation details

Supone

  • The reader understands distributed systems concepts.

Resumen

Junto con la paginación, el filtrado es la herramienta más básica para que una API devuelva solo lo que el cliente necesita. Sin filtrado, el cliente recibe todos los recursos y filtra localmente, desperdiciando ancho de banda y tiempo de procesamiento en el servidor y el cliente.

El filtrado se implementa típicamente mediante query parameters:

  • GET /users?status=active&role=admin
  • GET /orders?min_total=100&created_after=2026-01-01
  • GET /products?category=electronics&in_stock=true

En APIs más complejas, el filtrado puede incluir operadores —gt, lt, in, like—, búsqueda por texto —?q=term— y combinaciones lógicas. El estándar abierto más consolidado para filtrado avanzado es OData, aunque la mayoría de las APIs implementan un subconjunto más simple.

Alcance y supuestos

Este paquete cubre estrategias de filtrado en APIs y estándares como OData. Asume familiaridad con diseño de APIs.

Modelo mental

Un ecommerce sin filtros versus con filtros. Sin filtros: «acá tenés 50 000 productos, buscá el que te gusta». Con filtros: «mostrame celulares Samsung, entre $200 y $400, con envío gratis». El catálogo sigue teniendo 50 000 productos, pero solo transferís los 12 que cumplen los criterios.

Uso práctico

  • ✅ Cualquier API de listado: productos, usuarios, transacciones.
  • ❌ Endpoints que siempre devuelven un solo recurso.

Ejemplo trabajado: dashboards con múltiples filtros

Un panel de administración filtra transacciones: GET /transactions?status=completed&min_amount=50&date_from=2026-01-01&date_to=2026-06-30&sort=-created_at. El backend aplica los filtros en la query SQL con parámetros bindeados —no concatenación—. El frontend muestra los filtros activos como chips removibles. El usuario puede compartir la URL con los filtros aplicados y otra persona ve exactamente los mismos resultados.

Evidencia

  • El filtrado es ubicuo en APIs REST. GraphQL lleva el concepto más lejos permitiendo que el cliente especifique exactamente qué campos y con qué filtros en una sola query.

Fuentes citadas