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.
El servicio de búsqueda está preparado para recibir los siguientes parámetros en la URL, todos opcionales:
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:
Es otro array de las mismas características que contiene los criterios de ordenamiento. Sus claves son:
Indica la cantidad de registros por página
Indica el número de página a obtener
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.
El cuerpo del response obtenido luego de una operación exitosa será un objeto JSON con la siguiente estructura:
{ "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", (...) }, (...) ] } |
Operación | Valor esperado | Descripción |
---|---|---|
EXISTS | Boolean (true / false) | Consulta si el campo proporcionado existe o no en el objeto |
EQUAL | Texto, Número o Fecha | Compara por igualdad |
NOT_EQUAL | Texto, Número o Fecha | Compara por desigualdad |
GREATER_THAN | Texto, Número o Fecha | Compara por mayor estricto |
GREATER_THAN_OR_EQUAL_TO | Texto, Número o Fecha | Compara por mayor o igual |
LESS_THAN | Texto, Número o Fecha | Compara por menor estricto |
LESS_THAN_OR_EQUAL_TO | Texto, Número o Fecha | Compara 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 | String | Consulta si el valor del campo tiene como subcadena al valor proporcionado |
STARTS_WITH | String | Consulta si el valor del campo comienza con el valor proporcionado |
ENDS_WITH | String | Consulta 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. |
{ "code": 400, "message": "<nombre del campo> can not be filter.", "extended_code": 4601 } |
{ "code": 400, "message": "Invalid field \"<nombre del campo>\".", "extended_code": 4601 } |
{ "code": 400, "message": "No enum constant com.paypertic.filter.util.enums.Operation.<OPERACIÓN>", "extended_code": 4601 } |
{ "code": 400, "message": "<nombre_del campo> can not be filtered with <OPERACIÓN>.", "extended_code": 4601 } |