Page tree
Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 3 Next »

Por medio de un request GET puede obtenerse una lista filtrada, paginada y ordenada de cualquier endpoint que implemente la librería filters-util. Los diferentes criterios de búsqueda se pasan como query string parameters en la URL.

En este apartado explicaremos cómo construir una URL compatible con el uso de esta librería.

Tipos de parámetro

El servicio de búsqueda está preparado para recibir los siguientes parámetros en la URL, todos opcionales:

  • filters[ ]

Construido en semejanza a un array de objetos, contiene a los campos por los cuáles realizar la búsqueda y sus valores. Por cada elemento se esperan los siguientes atributos:

    • field: Nombre del campo
    • value: Valor del campo
    • operation: Operación aplicada entre el campo y el valor. Las operaciones disponibles están especificadas aquí.

  • sorts[ ]

Es otro array de las mismas características que contiene los criterios de ordenamiento. Sus claves son:

    • <nombre del campo>: La clave debe ser el nombre del campo a ordenar. Su valor va a ser la dirección del ordenamiento (ascending/descending)

  • limit

Indica la cantidad de registros por página

  • page

Indica el número de página a obtener


Ejemplo
https://api.paypertic.com/pagos?filters[0]field=status&filters[0]operation=EQUAL&filters[0]value=approved&filters[1]field=request_date&filters[1]operation=GREATER_THAN_OR_EQUAL_TO&filters[1]value=20191006T060000-0000&sorts[0]collector_id=ascending&limit=10&page=1

En el ejemplo se piden aquellos pagos cuyo estado sea aprobado y su fecha de envío sea igual o mayor al 06/10/2019 6:00. La lista se ordena por collector_id de forma ascendente y se solicita la primer página. Los pagos obtenidos se agrupan de a 10 registros por página.

Resultado

El cuerpo del response obtenido luego de una operación exitosa será un objeto JSON con la siguiente estructura:

  • page: Número de página del listado
  • limit: Cantidad de registros por página
  • size: Cantidad total de registros
  • rows: Array conteniendo el listado de objetos 


Ejemplo
{
  "page": 1,
  "limit": 10,
  "size": 23,
  "rows": [
    {
      "id": "11111111-1111-1111-1111-111111111111",
      "external_transaction_id": "123456789",
      "collector_id": "999",
      "collector_detail": {
        "name": "PRUEBA"
      },
	  "status": "approved",
	  "request_date": "2019-10-06T06:01:30+0000",
      (...)
    },
    {
      "id": "22222222-2222-2222-2222-222222222222",
      "external_transaction_id": "987654321",
      "collector_id": "1000",
      "collector_detail": {
        "name": "PRUEBA"
      },
	  "status": "approved",
      "request_date": "2019-10-07T11:21:10+0000",
      (...)
    },
	(...)
	]
} 

Operaciones disponibles

OperaciónValor esperadoDescripción
EXISTS
Boolean (true / false)Consulta si el campo proporcionado existe o no en el objeto
EQUAL
Texto, Número o FechaCompara por igualdad
NOT_EQUAL
Texto, Número o FechaCompara por desigualdad
GREATER_THAN
Texto, Número o FechaCompara por mayor estricto
GREATER_THAN_OR_EQUAL_TO
Texto, Número o FechaCompara por mayor o igual
LESS_THAN
Texto, Número o FechaCompara por menor estricto
LESS_THAN_OR_EQUAL_TO
Texto, Número o FechaCompara por menor o igual
IN
Lista [valor1,valor2,...]

Consulta si el valor del campo está incluído dentro del conjunto proporcionado. Incluir corchetes.

NOT_IN
Lista [valor1,valor2,...]Consulta si el valor del campo no está incluído dentro del conjunto proporcionado. Incluir corchetes.
CONTAINS
StringConsulta si el valor del campo tiene como subcadena al valor proporcionado
STARTS_WITH
StringConsulta si el valor del campo comienza con el valor proporcionado
ENDS_WITH
StringConsulta si el valor del campo finaliza con el valor proporcionado
Cada campo es asociado a un conjunto limitado de operaciones. En caso de error, por favor comunicarse con el equipo de soporte para conocer las operaciones disponibles del campo en cuestión.

Errores comunes


Este error indica que el campo no está dispobible para ser filtrado
{
  "code": 400,
  "message": "<nombre del campo> can not be filter.",
  "extended_code": 4601
}
Este error indica que el campo no pertenece al modelo de la entidad a ser filtrada
{
  "code": 400,
  "message": "Invalid field \"<nombre del campo>\".",
  "extended_code": 4601
}
Este error indica que la operación proporcionada es inexistente
{
  "code": 400,
  "message": "No enum constant com.paypertic.filter.util.enums.Operation.<OPERACIÓN>",
  "extended_code": 4601
}
Este error indica que la operación no se encuentra disponible para el campo
{
  "code": 400,
  "message": "<nombre_del campo> can not be filtered with <OPERACIÓN>.",
  "extended_code": 4601
}

Si el error que recibe no se encuentra resuelto en este apartado, le rogamos comunicarse con nuestro equipo de soporte.

  • No labels