Paginación y filtros
Todos los recursos que retornen un arreglo o lista, soportan paginación, filtros y orden. Por defecto, los valores se ordenan por fecha de creación, donde los mas recientes se ubicarán primero en el arreglo.
Paginación
La paginación se realiza definiendo el número de entradas por página a través del parámetro per_page y se navega mediante el parámetro page. Por defecto, page tiene un valor de 1 y per_page tiene un valor de 20.
Por ejemplo, para obtener la segunda página desplegando 20 entradas por página:
GET /recurso&page=1&per_page=20
Para facilitar la navegación y el despliegue de número de páginas, en la respuesta existen los parámetros page, per-page y total que representan la página actual, la cantidad de entradas por página y el total de entradas respectivamente.
Por ejemplo si page = 2, per-page = 10 y total = 45, es fácil definir que se trata de 5 páginas en total.
Filtros
El parámetro where acepta un hash para filtrar el contenido con respecto a una serie de reglas. La sintáxis corresponde a un objeto JSON de la siguiente manera:
{ ":atributo": { ":operador": ":variable" } }
:atributo pertenece a los atributos del recurso u objeto. :operador puede ser:
<menor a<=menor o igual a>mayor a>=mayor o igual a=igual alikeparecido a!distinto a:variablerepresenta al valor con el cual se aplicará el operador
Múltiples atributos y múltiples operadores por atributo son soportados.
Ejemplo:
{
"amount" : {
">=" : 1000,
"<" : 8000
},
"status": {
"=": "successful"
}
}
Orden
Se puede definir el orden de despligue de las entradas mediante el parámetro order_by. Este acepta un string con la siguiente estructura:
:atributo :orden
:atributopertenece a los atributos del recurso u objeto.:orderpuede ser:DESCorden descendenteASCorden ascentente El órden sólo se puede aplicar sobre un argumento y no soporta órdenes anidados.
Por ejemplo, si deseamos ordenar un recurso por fecha de creación de manera ascendente, realizamos: created_at ASC
Atributos
Número de página
Número de entradas por página
Corresponde a un conjunto de reglas (ej: {"amount": {">":2000}})
Orden de despliegue de las entradas