Paginación
Cuando pedimos una colección de objetos, los resultados serán paginados.
La información de paginación estará presente siempre en response['meta']['pagination']
y contará de 4 valores:
total_records: total de registros encontrados
total_pages: la cantidad total de páginas necesarias para mostrar todos los registros
per_page: la cantidad de objetos que se muestran por página,
current_page: la página actual
{
"status": 200,
"meta": {
"object": "plan",
"pagination": {
"total_records": 3,
"total_pages": 1,
"per_page": 20,
"current_page": 1
}
},
"data": [...resultados...]
Para manejar la paginación podrá enviar como parámetros en la url:
page: Indicando el número de pagina que desea ver. [Por defecto: 1]
per_page: Indicando la cantidad de resultados por página [Valor máximo: 1000, por defecto: 20]
curl --request GET \
--url https://www.cloud.wispro.co/api/v1/plans?page=3&per_page=1000 \
--header 'Accept: application/json' \
--header 'Authorization: 5367aa2c-c117-4447-a657-00ca13894275'
require 'uri'
require 'net/http'
require 'openssl'
url = URI("https://www.cloud.wispro.co/api/v1/plans?page=3&per_page=50")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Accept"] = 'application/json'
request["Authorization"] = '5367aa2c-c117-4447-a657-00ca13894275'
response = http.request(request)
puts response.read_body
Resultado:
{
"status": 200,
"meta": {
"object": "plan",
"pagination": {
"total_records": 399,
"total_pages": 4,
"per_page": 100,
"current_page": 3
}
},
"data": [...resultados...]
}
Idioma
En caso de tratar de crear, actualizar y borrar objetos y obtener errores, estos errores los podemos obtener localizados con el parámetro locale [Valores: es, en, pt, Defecto: es ]
curl --request DELETE \
--url https://www.cloud.wispro.co/api/v1/plans/382b4120-f124-4f33-8bad-0e6c767e88bc?locale=es \
--header 'Accept: application/json' \
--header 'Authorization: 5367aa2c-c117-4447-a657-00ca13894275'
{
"status": 400,
"meta": {},
"message": "Invalid record",
"errors": {
"name": ["Este plan aún tiene 3 contratos asignados y no puede ser borrado; elimine los contratos o cámbielos de plan intente nuevamente"]
}
}
Zona horaria
Todas las fechas (con hora) serán devueltas respetando la zona horaria del ISP en formato ISO8601.
Por ej: 2019-11-08T08:00:11.919-05:00
Filtros
Es posible filtrar los resultados enviando parámetros de búsqueda Los parámetros aceptados actualmente son los listados en cada endpoint y pueden usarse uno o más combinados al mismo tiempo.
Por ejemplo en el caso de los clientes se puede usar los siguientes parámetros para listar solo los clientes con nombre “cristina” y creados después del 8 de noviembre de 2019
curl --request GET \
--url https://cloud.wispro.co/api/v1/clients?name_unaccent_cont=cristina&created_at_after=2019-11-08T08:00:11.919-05:00 \
--header 'Accept: application/json' \
--header 'Authorization: 5367aa2c-c117-4447-a657-00ca13894275'
require 'uri'
require 'net/http'
require 'openssl'
url = URI("https://www.cloud.wispro.co/api/v1/plans/382b4120-f124-4f33-8bad-0e6c767e88bc")
params = {
name_unaccent_cont: 'cristina',
created_at_after: '2019-11-08T08:00:11.919-05:00'
}
url.query = URI.encode_www_form(params)
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Accept"] = 'application/json'
request["Authorization"] = '5367aa2c-c117-4447-a657-00ca13894275'
response = http.request(request)
puts response.read_body