La API de WalcuCRM utiliza un mecanismo de paginación cuando se realizan consultas. Como mucho se pueden pedir 50 elementos a la vez, y la API responderá con una cabecera MAPP-has-more indicando si hay más elementos. A traves del parámetro skip podemos ir paginando para descargar más documentos. Este método es efectivo para ciertos flujos de trabajo, pero si lo que se desea es descargar todos los elementos de un recurso que cumplan cierta condición es lento, dificil de implementar y hay que tener cuidado para no sobrepasar los límites de uso de la API. Para esos casos aconsejamos utilizar las deferred requests.
Para realizas una petición de este estilo, basta con añadir el sufijo /
all
al final de la URL de la petición.Por ejemplo, podemos obtener todos los leads que se han creado hoy con la siguiente query:
https://api.crm.walcu.com/dealers/<dealer_id>/saleleads/all?search=created_at%20=%20$today
🛈 Puedes encontrar la documentación completa del sufijo /all en la documentación de la API |
Esto nos responderá con la descripción del trabajo que se esta ejecutando en segundo plano:
[{"_id":"123","dealer_id":"321","status":"queued","job_url":"https://api.crm.walcu.com/dealers/321/deferredrequests/123"}]
Podemos realizar una petición (autenticada) a la job_url
que nos ha devuelto la API para consultar el estado del proceso:
[{"_id":"123","dealer_id":"321","status":"processing"}]
Una vez el campo status
sea finished
tendremos una respuesta similar a esta:
[{"_id":"123","dealer_id":"321","status":"finished","found_documents":4181,"results_url":"https://ext.crm.walcu.com/services/s3/dealers/..."}]
Por último, en el campo results_url
podremos realizar una petición (También autenticada) para consultar los datos que hayamos pedido, que se devolverán en formato JSON.