Listando recursos#

Todos os recursos disponibilizados pela API podem ser listados de forma idêntica, descrita a seguir.

Filtrando#

Filtros podem ser fornecidos diretamente na URL do GET realizado. O argumento mais usado é o where, e pode ser usado conforme os exemplos abaixo:

where={"title": "The Double Helix"}                  # O título seria "The Double Helix"
where={"year_published": {"$gt": 1900}}              # O ano de publicação maior que 1900
where={"first_name": {"$startswith": "C"}}           # O primeiro nome começa com 'C'
where={"first_name": {"$in": ["Charles", "James"]}}  # O primeiro nome seria ou 'Charles' ou 'James'
where={"title": "The Double Helix", "year_published": {"$lt": 2000}}

Nota

Veja a seção Filtros disponíveis para ver todos os operadores disponíveis.

Exemplo de chamada com filtros em pessoas monitoradas:

curl -X GET \
'https://op.digesto.com.br/api/monitoramento/monitored_person?where={"name":{"$contains":"João"}}' \
-H 'Content-Type: application/json' \
-H 'Host: op.digesto.com.br' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer <token>'

Exemplo de chamada com filtros em processos monitorados:

curl -X GET \
'https://op.digesto.com.br/api/monitoramento/proc?where={"numero_normalizado":"10001962220195020481"}' \
-H 'Content-Type: application/json' \
-H 'Host: op.digesto.com.br' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer <token>'

Exemplos de chamadas com filtros em eventos monitorados:

curl -X GET \
'https://op.digesto.com.br/api/monitoramento/monitored_event?where={"target_number":"0026481-97.2015.8.07.0003"}' \
-H 'Content-Type: application/json' \
-H 'Host: op.digesto.com.br' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer <token>'
curl -X GET \
'https://op.digesto.com.br/api/monitoramento/monitored_event?where={"evt_type":4,"created_at":{"$between":[{"$date":1468897200000},{"$date":1468983600000}]}}' \
-H 'Content-Type: application/json' \
-H 'Host: op.digesto.com.br' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer <token>'
  • Para listar por exemplo os eventos de andamentos, teria que trocar na URL o "evt_type":4 por "evt_type":1. O número na data é o unix time (milisegundos desde epoch).

curl -X GET \
'https://op.digesto.com.br/api/monitoramento/monitored_event?where={"source_url":{"$contains":"{\"https://op.digesto.com.br/api/monitoramento/monitored_person/5\"}"}}' \
-H 'Content-Type: application/json' \
-H 'Host: op.digesto.com.br' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer <token>'
  • Para retornar todos os eventos monitorados registrados para pessoa monitorada id 5.

Paginando#

A paginação ao listar entidades na API segue o padrão da GitHub API, onde o corpo da resposta é uma lista em formato JSON contendo os elementos encontrados. As páginas são solicitadas por meio dos parâmetros page e per_page na query string (URL).

  • A primeira página (page) é numerada como 1.

  • O valor máximo para o parâmetro per_page é 2048, e o valor padrão é 30.

  • Na resposta HTTP, o header Link lista links para: current, first, previous, next, e last page.

  • Além disso, o header de resposta X-Total-Count contém o total de resultados.

Por padrão, todas as listagens de entidades são paginadas com page=1 e per_page=30, para evitar que consultas com muitos resultados causem lentidão na serialização dos dados e impactem o desempenho da API para outros usuários.

Ordenando#

A ordenação dos resultados ao listar entidades na API é feita utilizando o parâmetro sort na chamada HTTP GET

curl -X GET \
'https://op.digesto.com.br/api/monitoramento/monitored_event?sort={"created_at":false}' \
-H 'Content-Type: application/json' \
-H 'Host: op.digesto.com.br' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer <token>'
curl -X GET \
'https://op.digesto.com.br/api/monitoramento/proc?sort={"created_at":false,"numero":true}' \
-H 'Content-Type: application/json' \
-H 'Host: op.digesto.com.br' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer <token>'

O parâmetro sort deve ser um JSON válido, então use aspas duplas (”) ao invés de aspas simples (‘). Por exemplo:

  • created_at: false significa que a ordenação será crescente.

  • numero: true indica que a ordenação será decrescente.