Pular para o conteúdo principal

Convenções da API


Formato de requisição

Query string vs body

TipoUso
Query stringMaioria dos endpoints GET e alguns POST
Body JSONCadastros (cadcli, cadvei, cadequi), passwd, addManutencao, changepwdbycode, salvajornadamotorista
Body form/querycadabastecimento (parâmetros na query ou form)

Para POST com body JSON, enviar Content-Type: application/json.


Formatos de data

FormatoExemploEndpoints
ddMMyyyyHHmmss07062025143000gethist, getdet, getTemperatura, getRelVisitas, getRelSensores, viagens
yyyy-MM-dd2025-06-07getGerencial
yyyy-MM-dd HH:mm:ss (parse flexível)2025-06-07 14:30:00getGerencial2
Epoch millis (string)1717770600000cadabastecimento, listamultas, manutenções, ocorrências (dtGMT)
yyyy-MM-dd'T'HH:mm:ssISO-likeaddManutencao (body JSON)

Paginação

Padrões variam por endpoint:

ParâmetroSignificado comum
limitMáximo de registros
first / firstResult / offsetOffset inicial
page / pPágina (1-based ou 0-based — ver endpoint)
lastidCursor por ID (posições, mensagens, POIs)

Content-Type de resposta

mContent-Type
Maioriaapplication/json;charset=UTF-8
gethist (GET)text/html;charset=UTF-8 quando format não é JSON
getpermTexto plano (lista de nomes separados por vírgula)
getDownloadBinário / stream do arquivo

Parâmetro format

Vários endpoints aceitam format=json para resposta JSON estruturada. Sem format, alguns retornam texto simples (OK, códigos de status).

Exemplos: auth, block, unblock, getcomm, getpois, getocorr, getdet.


Sessão e closeSession

Por padrão, o ApiServlet invalida a sessão ao final de cada requisição, exceto quando:

  • O handler define req.setAttribute("closeSession", false) (ex.: auth), ou
  • O cliente envia closeSession=false na query string.

Apps mobile devem usar closeSession=false em todas as chamadas após o login.


Rate limit

Configuração: war/WEB-INF/rate-limit.properties

PropriedadeDescrição
default.per.minuteLimite padrão por usuário+rota por minuto
default.ip.per.hourLimite padrão por IP por hora
route.<nome>Limite específico para o valor de m

Resposta quando excedido: HTTP 429 Too Many Requests.


CORS

O CorsFilter está mapeado para /* — requisições cross-origin são permitidas conforme configuração do filtro.


Hierarquia de clientes

Muitos endpoints filtram dados pelo ClienteDTO do usuário logado, incluindo sub-clientes via path LIKE 'X.%'. Veículos e posições respeitam essa árvore hierárquica.


Identificação de veículo

ParâmetroTipoUso
vint (ID)Histórico, comandos, relatórios
idVeiculointViagens, mensagens, trajetos
veiculoint/stringVaria por endpoint
placastringCompartilhamento (share)