JSONAPI-Resources / JSONAPI-Resources/jsonapi-resources

Feature Request: built in support for non where/in filtering

Abierto
#125 1 comentario 3 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Type: Enhancement
Lenguaje dominante
Ruby
Estrellas
2.3k
Forks
546
Métricas de merge de PR
Sin PR fusionados en 30 d

Descripción

Out of the box, JR takes this:

GET /users?filter[first_name]=Yehuda

and turns it into the equivalent of this:

User.where(:first_name => ["Yehuda"])

Although JSON API spec is agnostic about filter implementation, I propose introducing some naming patterns for "starts with", "ends with", "contains", and "not in" type attribute filters.

Examples

Get all users with a first_name that starts with "ye":

GET /users?filter[first_name^]=ye

Get all users with a first_name that ends with "huda":

GET /users?filter[first_name$]=huda

Get all users with a first_name that contains "hud":

GET /users?filter[first_name~]=hud

Get all users with a first_name that is NOT "Yehuda":

GET /users?filter[first_name!]=Yehuda

Guía de contribución

No hay ninguna guía de contribución indexada para este repositorio

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Línea de trabajo

Rastrea el procesamiento existente de GET /users?filter[first_name] hasta su conversión a User.where. Revisa cómo se analizan los nombres y valores de los filtros y, a continuación, determina el comportamiento esperado para los filtros starts-with, ends-with, contains y not-equal. Se considerará terminado cuando las cuatro formas de consulta propuestas sean compatibles y cuenten con cobertura correspondiente.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
rails, ruby
Área
api, backend
Tipo de issue
Nueva funcionalidad
Dificultad
5/5
Tiempo estimado
Más de una semana
Estado de actividad
Estancado
Claridad
Bastante claro
Aptitud para principiantes
30/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.