Paginación y parámetros extra

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