Você está na página 1de 27

[API DE INTEGRAÇÃO

MULTIPORTAL]
Documento de Integração dos dados do Sistema de Monitoramento da
Multiportal

Versão 1.8

1
Notas da versão

Versão Responsável Data Informação


1.0 Paulo Gomes 14/10/2015 Implementação básica da API de
integração com acesso a veículos,
vínculos, dados de posição, e dados
acumulados.
1.1 Paulo Gomes 22/02/2016 Adicionadas as informações de motorista
e dispositivo na posição, e a adição do
relatório de posições para múltiplos
veículos.
1.2 Paulo Gomes 22/02/2016 Inclusão de serviço para solicitar a
relação de componentes e eventos
1.3 Paulo Gomes 09/03/2016 Correção da URL de Posições de um
grupo de ids de veículos. Inclusão de
serviço de Ultima Posição
1.4 Paulo Gomes 17/06/2016 Inclusão de serviço de relatório em
grupos, trazendo um retorno mais
orientado a objetos. Adicionado serviço
para envio de comandos. Adicionado
propriedade no objeto Dispositivo
indicando se o seu serial é hexadecimal.
Adicionado informação de quais grupos o
veiculo está.
1.5 Paulo Gomes 23/08/2016 Inclusão de serviços relativos aos
motoristas
1.6 Rafael Costa 10/04/2017 Inclusão de serviços relacionados aos
relatórios gerenciais. Adicionada o
formato da data que deve ser enviada
nos cabeçalhos. Atualização dos
modelos de dados
1.7 Rafael Costa 17/04/2017 Inclusão de serviços checklist, tempo
ignição mensal e odômetro mensal.
1.8 Daniel Lima 30/10/2018 Inclusão do serviço “dados_novos”.
Adição da classificação na descrição dos
serviços para facilitar entendimento
sobre a utilização dos mesmos.

2
Indice
Notas da versão............................................................................................................................2
Introdução à utilização.................................................................................................................5
Desenho da solução.....................................................................................................................6
Estrutura dos serviços..................................................................................................................7
Serviços........................................................................................................................................8
Login / Handshake....................................................................................................................8
Lista de Veículos.......................................................................................................................8
Detalhe de Veiculo...................................................................................................................9
Histórico Posições.....................................................................................................................9
Relatório - Acumulado Tempo Condução...............................................................................10
Relatório – Acumulado Paradas.............................................................................................10
Relatório – Acumulado Velocidade........................................................................................10
Relatório – Acumulados.........................................................................................................11
Relatório – Acumulado Tempo Ignição Mensal......................................................................11
Relatório – Acumulado Odômetro Mensal.............................................................................12
Relatório Viagem / Estacionamento.......................................................................................12
Lista de Eventos......................................................................................................................13
Detalhe de Evento..................................................................................................................13
Lista de Componentes............................................................................................................13
Detalhe de Componente........................................................................................................13
Ultima Posição........................................................................................................................14
Enviar Comandos....................................................................................................................14
Lista de Motoristas.................................................................................................................15
Detalhe de Motorista - por nome...........................................................................................15
Detalhe de Motorista - por id.................................................................................................15
CheckList................................................................................................................................16
Dados Novos...........................................................................................................................17
Exemplos de Implementação.....................................................................................................19
Linguagem C#.........................................................................................................................19
Linguagem Java......................................................................................................................19
Javascript................................................................................................................................19

3
Modelos de Dados em JSon........................................................................................................20

4
Introdução à utilização
Este documento descreve a API que é uma interface desenvolvida pela Multiportal e
que possibilita o consumo dos dados de localização, permitindo que aplicações
terceiras consigam utilizar esse conteúdo principalmente para o desenvolvimento de
relatórios customizados.

Para troca de mensagens é utilizado o formato JSON (JavaScript Object Notation) em


função de sua portabilidade, facilidade de implementação e tamanho reduzido
permitindo um trafego de conteúdo de forma mais ágil entre as duas pontas. Todos os
dados trafegados entre o cliente (Sua Plataforma) e o Servidor (Nosso Sistema)
devem utilizar requisições POST, onde alguns dados são trafegados através do
header dos serviços e outros no corpo do serviço. Também deve-se utilizar o “content-
type” da requisição como “application/json”, caso contrario a requisição não será
atendida.

Recomenda-se que as chamadas aos serviços sejam realizadas de forma assíncrona


evitando que eventual lentidão no processamento e retorno da requisição gere alguma
consequência indesejada na aplicação cliente.

Neste documento você vai encontrar todos os formatos de dados que são utilizados
pela API e os parâmetros necessários para trafegar os dados.

O endereço (endpoint) da API esta descrito abaixo:

Endereço Endpoint da API


https://apiv1.1gps.com.br

5
Desenho da solução

6
Estrutura dos serviços

Toda chamada aos serviços da API deve ser feita utilizando POST respeitando as
regras de requisições RESTfull e adicionando parâmetros via cabeçalho quando
necessário.

Os serviços possuem um objeto de retorno padronizado conforme a estrutura abaixo:

"status": "OK",

"responseMessage": "mensagem de retorno",

"object": {}

O campo de status é um enum que possui os seguintes valores possíveis:

 OK – representa que o retorno é o esperado, mesmo que vazio;


 INVALIDO – significa que o dado enviado não foi o esperado;
 EXPIRADO – significa que token utilizado expirou necessitando nova
autenticação;
 ERRO – representa que houve um erro ao realizar sua requisição, tente
novamente;
 NAOPERMITIDO, sua requisição não pode ser concluída por falta de login ou
permissão.

O campo responseMessage contem uma mensagem de texto que descreve a causa


mais provável do status retornado.

O campo object apresenta a estrutura de retorno específica de cada serviço e dessa


forma essa estrutura é variável. Na próxima seção serão apresentados detalhes dos
serviços disponíveis e as particularidade dos parâmetros e retorno de cada um deles.

7
Serviços
A API contempla um conjunto de serviços classificados de acordo com um propósito
sendo organizados em Autenticação, Informação, Configuração e Posicionamento.
Nos detalhes de cada serviço será descrito a classificação.
Os serviços do grupo “Posicionamento” requerem uma atenção especial por parte das
aplicações clientes sobretudo devido a particularidades que envolvem o desempenho
da API. Nesse grupo existem serviços para obter a ultima posição, dados históricos e
dados online. Consultas recorrentes realizadas em intervalos pequenos (menos de 3
minutos entre chamadas) somente podem ser realizados para os serviços de última
posição e online. Os serviços de histórico e dados acumulados não foram
desenvolvidos com esse propósito e devem ser utilizados com intervalos de chamada
maiores. Caso seja identificado uma utilização de forma indevida para esses casos
(histórico e acumulado) a Multiportal poderá realizar o bloqueio da credencial sem
aviso prévio.
Todos os serviços da API, com exceção do serviço “Login/Handshake”, necessitam
obrigatoriamente de um token utilizado para autenticação e controle. Esse token é
obtido no próprio serviço “Login/Handshake”.

Login / Handshake
O serviço “Login/Handshake” pertence ao grupo Autenticação. O login é realizado
através da URL de segurança e objeto de envio “Handshake”. O retorno da requisição
é um objeto Handshake similar ao enviado contendo dados complementares como o
token e a data de expiração que representa quando o token será expirado caso não
seja realizado uma nova autenticação. Caso o token tenha sido expirado é necessário
realizar uma nova requisição de login. O Token é obrigatório em todos os demais
serviços da API. O parâmetro “expiration” do objeto Handshake é um campo do tipo
data numérico e representa o timestamp Unix.

Informação Valor
URL https://apiv1.1gps.com.br/seguranca/logon
Objeto de Envio Handshake
Objeto de Retorno Handshake
Timeout Nenhum
Classificação Autenticação

Lista de Veículos
Este serviço pertence ao grupo de Informação e tem como objetivo listar todos os
veículos que a credencial de acesso utilizada no (Login/Handshake) tem permissão.
Nesta requisição é enviado o token recebido durante o processo de logon e tem como
retorno uma lista dos veículos. Esse serviço pode ser utilizado com o propósito de
identificar o dispositivo vinculado ao veiculo.

8
Informação Valor
URL https://apiv1.1gps.com.br/veiculos
Objeto de Retorno Array de Veículos
Cabeçalhos token: Token devolvido no processo de login
Observações Esta requisição possui um período de 3 minutos de cache.
Caso seja solicitado novamente em um período inferior a 3
minutos, os valores retornados serão os mesmos retornados
anteriormente, sem uma nova consulta ao sistema.
Timeout 3 minutos
Classificação Informação

Detalhe de Veiculo
Este serviço pertence ao grupo de Informação e tem como objetivo trazer informações
dos dispositivos (rastreadores) e motoristas vinculados ao veículo durante o período
solicitado. O período de busca deverá ser de no máximo 30 dias.

Informação Valor
URL https://apiv1.1gps.com.br/veiculos/periodo
Objeto de Envio Veículo
Objeto de Retorno Veículo
Cabeçalho token: Token devolvido no processo de login;
dataInicial: dd/MM/yyyy HH:mm:ss
dataFinal: dd/MM/yyyy HH:mm:ss
Observações Assim como na requisição de veículos, os retornos são
armazenados em cache por 3 minutos e caso haja alguma
requisição com o mesmo parâmetro, os dados devolvidos são
os dados armazenados em memória.
Timeout 3 minutos
Classificação Informação

Histórico Posições
Esse serviço pertence ao grupo Posicionamento e deve ser utilizado para obtenção de
dados históricos. Através dele é possível solicitar um relatório de posições para um
veículo conforme período solicitado. O período máximo de consulta é de 30 dias. Caso
seja necessário dados de um período superior deve ser realizado múltiplas consultas
com datas complementares.

Informação Valor
URL https://apiv1.1gps.com.br/posicoes/veiculo
Objeto de Retorno Veículo
Objeto de Envio Veículo
Cabeçalho token: Token devolvido no processo de login;
dataInicial: valor em timestamp
dataFinal: valor em timestamp

9
Observações Só é possível fazer as solicitações por um veiculo por vez, e
com no máximo 30 dias de posições.
Timeout 3 minutos
Classificação Posicionamento (Histórico)

Relatório - Acumulado Tempo Condução


Esse serviço pertence ao grupo Posicionamento e deve ser utilizado para obtenção de
dados históricos. Através dele é possível obter os dados acumulados de condução de
um veículo em um período sendo possível ter uma visão gerencial com indicadores
como tempo de condução em viagem, no dia e na semana, além de uma relação com
o grau de aproveitamento diário. É importante lembrar que para que esses dados do
veículo sejam gerados é preciso realizar habilitação no sistema. Para mais detalhes,
consulte a equipe de suporte da Multiportal a respeito dos relatórios gerenciais
acumulados.

Informação Valor
URL https://apiv1.1gps.com.br/acumulados/conducao
Objeto de Retorno TempoConducao
Objeto de Envio veiculoid: 123456 (exemplo)
mesAno: MM/aaaa
Cabeçalho token: Token devolvido no processo de login
Observações O dia informado na data é indiferente, pois os dados
retornados serão do Mês e Ano informado na data.

Timeout 3 minutos
Classificação Posicionamento (Histórico)

Relatório – Acumulado Paradas


Esse serviço pertence ao grupo Posicionamento e deve ser utilizado para obtenção de
dados históricos. Através dele é possível saber a quantidade de paradas ou
descansos realizados por um veículo em um período.

Informação Valor
URL https://apiv1.1gps.com.br/acumulados/paradas
Objeto de Retorno Paradas
Objeto de Envio veiculoid: 123456 (exemplo)
mesAno: MM/aaaa
Cabeçalho token: Token devolvido no processo de login;
Observações O dia informado na data é indiferente, pois os dados retornados
serão do Mês e Ano informado na data.
Timeout 3 minutos
Classificação Posicionamento (Histórico)

Relatório – Acumulado Velocidade


Esse serviço pertence ao grupo Posicionamento e deve ser utilizado para obtenção de
dados históricos. Através dele é possível saber a quantidade de vezes que o veículo

10
excedeu a velocidade máxima cadastrada, por quanto tempo essa limite foi excedido e
a distância percorrida. Caso ele o veículo não tenha atingido ou excedido a velocidade
máxima os dados retornados exibirão o valor da maior velocidade atingida no período
solicitado.

Informação Valor
URL https://apiv1.1gps.com.br/acumulados/velocidade
Objeto de Retorno Velocidade
Objeto de Envio veiculoid: 123456 (exemplo)
mesAno: MM/aaaa
Cabeçalho token: Token devolvido no processo de login;
Observações O dia informado na data é indiferente, pois os dados
retornados serão do Mês e Ano informado na data.
Timeout 3 minutos
Classificação Posicionamento (Histórico)

Relatório – Acumulados
Esse serviço pertence ao grupo Posicionamento e deve ser utilizado para obtenção de
dados históricos. Esse serviço é baseado no Relatório Gerencial - Performance
Mensal do Sistema da Multiportal e permite obter em uma única chamada as
informações sobre velocidade excedida, tempo de condução e paradas. Nessa
situação o objeto de retorno será composto com três objetos referente a cada uma
dessas informações.

Informação Valor
URL https://apiv1.1gps.com.br/acumulados/
Objeto de Retorno Acumulados
Objeto de Envio veiculoid: 123456 (exemplo)
mesAno: MM/aaaa
Cabeçalho token: Token devolvido no processo de login;
Observações O dia informado na data é indiferente, pois os dados retornados
serão do Mês e Ano informado na data.
Timeout 3 minutos
Classificação Posicionamento (Histórico)

Relatório – Acumulado Tempo Ignição Mensal


Esse serviço pertence ao grupo Posicionamento e deve ser utilizado para obtenção de
dados históricos. Através dele é possível obter o tempo de ignição ligada/desligada em
horas, agrupadas por dias da semana no mês.

Informação Valor
URL https://apiv1.1gps.com.br/acumulados/tempoignicaomensal
Objeto de Retorno TempoIgniçãoMensal
Objeto de Envio veiculoid: 123456 (exemplo)
mesAno: MM/aaaa
Cabeçalho token: Token devolvido no processo de login;
Observações O dia informado na data é indiferente, pois os dados retornados
serão do Mês e Ano informado na data.

11
Timeout 3 minutos
Classificação Posicionamento (Histórico)

Relatório – Acumulado Odômetro Mensal


Esse serviço pertence ao grupo Posicionamento e deve ser utilizado para obtenção de
dados históricos. Através dele é possível obter a distância percorrida (em metros)
agrupadas por dias da semana no mês.

Informação Valor
URL https://apiv1.1gps.com.br/acumulados/tempoignicaomensal
Objeto de Retorno TempoIgnição
Objeto de Envio veiculoid: 123456 (exemplo)
mesAno: MM/aaaa
Cabeçalho token: Token devolvido no processo de login;
Observações O dia informado na data é indiferente, pois os dados retornados
serão do Mês e Ano informado na data.
Timeout 3 minutos
Classificação Posicionamento (Histórico)

Relatório Viagem / Estacionamento


Esse serviço pertence ao grupo Posicionamento e deve ser utilizado para obtenção de
dados históricos. Através dele é possível obter o tempo que o veículo ficou em viagem
ou permaneceu estacionado.

Informação Valor
URL https://apiv1.1gps.com.br/acumulados/viagemestacionamento
Objeto de Retorno ViagemEstacionamentoDados
Objeto de Envio veiculoid: 123456 (exemplo)
dataInicial: dd/MM/yyyy HH:mm:ss
dataFinal: dd/MM/yyyy HH:mm:ss
Cabeçalho token: Token devolvido no processo de login;
Observações Só é possível fazer as solicitações por um veiculo por vez, e
com no máximo 30 dias de posições.
Timeout 3 minutos
Classificação Posicionamento (Histórico)

12
Lista de Eventos
Esse serviço pertence ao grupo Informação. Através dele é possível obter a relação de
todos os eventos existentes.

Informação Valor
URL https://apiv1.1gps.com.br/info/eventos
Objeto de Retorno Lista de Evento
Objeto de Envio Nenhum
Cabeçalho token: Token devolvido no processo de login;
Observações Apenas para consulta.
Classificação Informação

Detalhe de Evento
Esse serviço pertence ao grupo Informação. Através dele é possível consultar detalhes
de um evento em específico.

Informação Valor
URL https://apiv1.1gps.com.br/info/evento/{id}
Objeto de Retorno Evento
Objeto de Envio Nenhum
Cabeçalho token: Token devolvido no processo de login;
Observações Apenas para consulta. O Id do evento deve estar na URL
substituindo o parâmetro {id}
Classificação Informação

Lista de Componentes
Esse serviço pertence ao grupo Informação. Através dele é possível obter a relação de
todos os componentes existentes.

Informação Valor
URL https://apiv1.1gps.com.br/info/componentes
Objeto de Retorno Lista de Componentes
Objeto de Envio Nenhum
Cabeçalho token: Token devolvido no processo de login;
Observações Apenas para consulta.
Classificação Informação

Detalhe de Componente
Esse serviço pertence ao grupo Informação. Através dele é possível consultar detalhes
de um componente em específico.

Informação Valor
URL https://apiv1.1gps.com.br/info/componente/{id}
Objeto de Retorno Componente
Objeto de Envio Nenhum

13
Cabeçalho token: Token devolvido no processo de login;
Observações Apenas para consulta. O Id do evento deve estar na URL
substituindo o parâmetro {id}
Classificação Informação

Ultima Posição
Esse serviço pertence ao grupo Posicionamento e deve ser utilizado para obtenção da
última posição (posição mais atual) dos veículos associados a credencial. Esse serviço
não tem restrição para consultas recorrentes.

Informação Valor
URL https://apiv1.1gps.com.br/posicoes/ultimaPosicao
Objeto de Retorno Array de Veiculos
Objeto de Envio Nenhum
Cabeçalhos token: Token devolvido no processo de login
Observações Esta requisição possui um período de 3 minutos de cache.
Caso seja solicitado novamente em um período inferior a 3
minutos, os valores retornados serão os mesmos retornados
anteriormente, sem uma nova consulta ao sistema. Os veículos
que possuírem dispositivos devem trazer a lista de dispositivos
e sua ultima posição caso haja tal informação no sistema.
Timeout 3 minutos
Classificação Posicionamento (Ultima Posição)

Enviar Comandos
Esse serviço pertence ao grupo Configuração e deve ser utilizado para o envio de
comandos ao dispositivo instalado em um veículo. A utilização desse serviço de forma
indevida é de responsabilidade do cliente. Para enviar um comando é necessário
conhecer o dispositivo, o evento que identifica o comando e os parâmetros que
compõem o evento. Caso o comando não possua parâmetro, é possível enviar nulo no
valor. Para maiores detalhes consulte a equipe de suporte da Multiportal a respeito
dos parâmetros necessários para cada evento.

Informação Valor
URL https://apiv1.1gps.com.br/comandos/add
Objeto de Retorno Booleano com um true ou false, notificando se o comando foi
corretamente recebido pelo servidor. Não significa que o
comando foi enviado ao dispositivo ainda.
Objeto de Envio FiltroComandos
Cabeçalhos token: Token devolvido no processo de login
Observações Para esta requisição é necessário conhecer os parâmetros do
comando corretamente, e para tal, a melhor maneira é
observar os dados no portal de monitoramento para o
comando que se deseja enviar, e então montar os parâmetros
iguais aos enviados pelo portal ou basear-se nos parâmetros
gerados para gerar os seus próprios.
Timeout Nenhum
Classificação Configuração

14
Lista de Motoristas
Esse serviço pertence ao grupo Informação. Através dele é possível obter a relação de
todos os motoristas existentes associados a credencial.

Informação Valor
URL https://apiv1.1gps.com.br/motoristas
Objeto de Retorno Array de Motoristas
Cabeçalhos token: Token devolvido no processo de login
Observações Os motoristas listados são apenas os que o usuário pode ver.
Timeout Nenhum
Classificação Informação

Detalhe de Motorista - por nome


Esse serviço pertence ao grupo Informação. Através dele é possível consultar detalhes
de um motorista em específico pesquisando através do nome.

Informação Valor
URL https://apiv1.1gps.com.br/motoristas/nome/
Objeto de Retorno Array de Motoristas
Cabeçalhos token: Token devolvido no processo de login
nome: Nome do motorista
Observações Os motoristas listados são apenas os que o usuário pode ver.
Timeout Nenhum
Classificação Informação

Detalhe de Motorista - por id


Esse serviço pertence ao grupo Informação. Através dele é possível consultar detalhes
de um motorista em específico pesquisando através do id.

Informação Valor
URL https://apiv1.1gps.com.br/motoristas/id/
Objeto de Retorno Array de Motoristas
Cabeçalhos token: Token devolvido no processo de login
id: ID do motorista
Observações Os motoristas listados são apenas os que o usuário pode ver.
Timeout Nenhum
Classificação Informação

15
CheckList
Esse serviço pertence ao grupo Posicionamento e deve ser utilizado para obtenção de
dados históricos. Através dele é possível obter informações detalhadas dos
componentes do equipamento a cada posição, tais como sensores e atuadores.

Informação Valor
URL https://apiv1.1gps.com.br/posicoes/check
Objeto de Retorno PosicaoCheckList
Objeto de Envio dataInicial : (valor em timestamp)
dataFinal : (valor em timestamp)
veiculoid : Id do veículo.
serial : número de série do equipamento
fabricanteid: id do fabricante
ordenacao: (valores possíveis: “GPS”, “COMUNICAO” ou
“EVENTO”)
odometroExterno: (true ou false)
Cabeçalhos token: Token devolvido no processo de login
Observações Os componentes variam de acordo com fabricante
Timeout 3 minutos
Classificação Posicionamento (Histórico)

16
Dados Novos
Esse serviço pertence ao grupo Posicionamento e deve ser utilizado para obtenção de
dados online e deverá ser utilizado por aplicações que necessitam desse conteúdo em
tempo real. A utilização desse serviço deve ser de forma recorrente para obtenção das
novas posições. Caso isso não seja realizados os dados serão acumulados em uma
fila e dependendo da regularidade de consulta poderão ficar defasados.

Esse serviço utiliza uma fila de dados do dia corrente e um índice de referência. Cada
chamada a esse serviço faz a leitura a um bloco de mensagens dessa fila utilizando o
índice de referência como delimitador do início do bloco. Após a consulta o índice de
referência é atualizado com a posição final do bloco. As posições do bloco são
filtradas para retornar somente os dados associados a credencial utilizada. A imagem
abaixo ilustra o funcionamento da fila em algumas chamadas.

A fila é zerada diariamente não permitindo a consulta de dados de dias passados e


dessa forma esse serviço sempre retornará os dados que os dispositivos comunicaram
no dia corrente. Vale observar que pode ocorrer situações do serviço retornar dados
de dias passados mas isso ocorrerá em decorrência de alguma questão operacional
do dispositivo como a descarga de dados acumulados em memória interna.

As consultas são realizadas em blocos como ilustrado na imagem acima podendo


acontecer de uma consulta não retornar nada (VAZIO) mas isso não significa
exatamente que a fila esteja vazia e que não exista dados novos. Essa situação pode
acontecer em decorrência de no bloco de posições pesquisado na chamada corrente
não existir dados dos veículos associados a credencial.

17
Informação Valor
URL https://apiv1.1gps.com.br/integracao/dados_novos
Objeto de Retorno Array de Veículos
Objeto de Envio Nenhum
Cabeçalho token: Token devolvido no processo de login;
Observações Esse serviço utiliza uma fila de mensagens e para obtenção
dos dados em tempo real deve ser realizadas consultas
recorrentes ao longo do dia.
Timeout Nenhum
Classificação Posicionamento (Online)

18
Exemplos de Implementação

Nesta seção serão apresentados alguns exemplos de implementação feitos pela


equipe da Multiportal para facilitar o entendimento e a implementação dos modelos
mostrados neste documento. A inexistência de um exemplo em uma determinada
linguagem não significa que o mesmo não possa ser implementado na mesma,
apenas utilizamos algumas das mais utilizadas no mercado como exemplo. Os
exemplos estão disponíveis para serem carregados no Postman através da URL:
https://www.getpostman.com/collections/396850e8818b1645137a.

Linguagem C#

Em C#, foram disponibilizados quatro arquivos. O Arquivo HandshakeModel.cs é o


arquivo de modelo do objeto de login, nele é possível notar a dependência do
Assembly System.Runtime.Serialization. Repare que existe uma conversão que é
feita para as datas, pois as mesmas são enviadas no formato Unix, e devem ser
convertidas para o formato Windows.

Já o arquivo HandshakeService.cs, possui o método que é utilizado para fazer o


handkshake. Nele é possível ver a forma como é montado o objeto com os parâmetros
que são passados via header, e como é passado o objeto que vai ser enviado via
POST.

O ResponseData.cs é o objeto que é devolvido pelo servidor. Este modelo de objeto é


a implementação do modelo de resposta, já com a implementação de conversão de
JSON para Objeto, visto que a classe usa Generics para devolver o objeto pronto.

A ultima classe, RestService.cs, nada mais é do que o próprio serviço de consulta


REST para o servidor, ele possui duas chamadas, uma para quando é preciso enviar
um objeto no corpo, e outra para quando não é preciso enviar.

Linguagem Java
Em Java, foram utilizadas duas bibliotecas, o Jackson para fazer a conversão dos
objetos para json, e o Jersey para fazer efetuar a transmissão dos objetos.

Javascript
No Javascript, foi utilizado o Jquery para fazer requisições ao servidor. A biblioteca do
Jquery já possui uma série de métodos que são extremamente úteis na hora de
consumir chamadas POST e Ajax.

19
Modelos de Dados em JSon

Segue abaixo relação com todos os modelos de dados utilizados na API.

Nome Valor
{
"username": null,
"password": null,
Handshake "appid": null,
"token": null,
"expiration": null
}
{
"id": null,
"codigorf": null,
"odometroGps": null,
"dataAquisicao": null,
"distanciaKmFrete": null,
"kmManual": null,
"horimetroManual": null,
"horimetroAtual": null,
"kmAtual": null,
"statusVenda": null,
"dataAtivado": null,
"dataCadastrado": null,
"dataCancelado": null,
"fuso": null,
"deletado": null,
"status": null,
"finalizado": null,
"renavam": null,
Veículo "vin": null,
"anoFabricacao": null,
"anoModelo": null,
"placa": null,
"dataInstalacao": null,
"tipoMonitoramento": null,
"marca": null,
"modelo": null,
"cor": null,
"descricao": null,
"frota": null,
"tipo": null,
"assistencia": false,
"usuarioCriacao": null,
"proprietarioId": null,
"proprietario": null,
"grupos": [],
"motoristas": [],
"dispositivos": []
}

20
{
"id": null,
"fabricanteId": null,
"fabricante": null,
"numero": null,
"numeroStr": null,
"skywave": null,
"tensaoBateria": null,
"dispositivoPrincipal": null,
"movel": null,
Dispositivo
"observacao": null,
"dataCadastro": null,
"usuarioCadastro": null,
"dataAtualizacaoIccid": null,
"inicioVinculo": null,
"fimVinculo": null,
"serialHexa": false,
"chips": [],
"posicoes": []
}
{
"online": false,
"eventoId": 0,
"evento": null,
"sequencia": 0,
"referencia": null,
"dataEquipamento": null,
"dataGPS": null,
"dataGateway": null,
"dataProcessamento": null,
"tipo": null,
"id": null,
"texto": null,
"binario": null,
"validade": false,
Posição
"latitude": 0,
"longitude": 0,
"velocidade": 0,
"proa": 0,
"altitude": 0,
"hdop": 0,
"satelites": 0,
"livre": null,
"endereco": null,
"motorista": null,
"dispositivoid": 0,
"numerostr": null,
"fabricante": 0,
"componentes": null
}
Chip {
"slot": 0,

21
"linha": null,
"serialChip": null,
"tipoChip": null,
"operadora": null
}
{
"id": null,
Componente "nome": null,
"valor": null
}
{
"velocidade": null,
AcumuladosConducao "paradas": null,
"tempoConducao": null
}
{
"data": null,
"kmInicial": null,
"kmFinal": null,
"kmRodados": null,
AcumuladoTempoCondu
"minutosConducao": null,
cao
"inicioViagem": null,
"fimViagem": null,
"horaConducaoDiaria": null,
"horaConducaoSemanal": null
}
{
"data": null,
"previsto": null,
GrauAproveitamento
"realizado": null,
"ideal": null
}
{
"somaNumeroParadasDescanso": null,
"somaTotalHoraParadasDescanso": null,
"somaTotalDescanso": null,
"maiorNumeroParadasDescanso": null,
"maiorMediaHoraParadasDescanso": null,
"maiorTotalHoraParadaDescanso": null,
"maiorDescansoHora": null,
"mediaNumeroParadasDescanso": null,
Paradas
"mediaMediaHoraParadasDescanso": null,
"mediaTotalHoraParadaDescanso": null,
"mediaDescansoHora": null,
"menorNumeroParadasDescanso": null,
"menorMediaHoraParadasDescanso": null,
"menorTotalHoraParadaDescanso": null,
"menorDescansoHora": null,
"paradas": []
}
PerformanceVelocidade {
"data": null,

22
"picos": null,
"distancia": null,
"velocidadeMaxima": null,
"tempo": null,
"velocidadeMedia": null
}
{
"kmViagemTempoConducao": null,
"diaViagemTempoConducao": null,
"semanaViagemTempoConducao": null,
"maiorKmViagemTempoConducao": null,
"maiorInicioViagemTempoConducao": null,
"maiorFimViagemTempoConducao": null,
"maiorDiaViagemTempoConducao": null,
"maiorSemanaViagemTempoConducao": null,
"mediaKmViagemTempoConducao": null,
"mediaInicioViagemTempoConducao": null,
"mediaFimViagemTempoConducao": null,
TempoConducao "mediaDiaViagemTempoConducao": null,
"mediaSemanaViagemTempoConducao": null,
"menorKmViagemTempoConducao": null,
"menorInicioViagemTempoConducao": null,
"menorFimViagemTempoConducao": null,
"menorDiaViagemTempoConducao": null,
"menorSemanaViagemTempoConducao": null,
"maiorGrauAproveitamento": null,
"mediaGrauAproveitamento": null,
"menorGrauAproveitamento": null,
"tempoConducao": [],
"aproveitamento": []
}
{
"somaPicosVelocidade": null,
"somaTempoVelocidade": null,
"somaKmDistancia": null,
"maiorPicosVelocidade": null,
"maiorkmDistancia": null,
"maiorTempoVelocidade": null,
"maiorMaximoVelocidade": null,
"maiorMediaVelocidade": null,
"mediaPicosVelocidade": null,
Velocidade "mediaKmDistancia": null,
"mediaTempoVelocidade": null,
"mediaMaximoVelocidade": null,
"mediaVelocidadeMedia": null,
"menorPicosVelocidade": null,
"menorKmDistancia": null,
"menorTempoVelocidade": null,
"menorMaximoVelocidade": null,
"menorMediaVelocidade": null,
"velocidades": []
}

23
{
"horaInicio": null,
"horaFinal": null,
"tempoEmViagem": null,
"kmDistancia": null,
ViagemEstacionamento "velocidadeMedia": null,
"motoristaId": null,
"motorista": null,
"enderecoInicial": null,
"enderecoFinal": null
}
{
"data": null,
"veiculoid": null,
"placa": null,
ViagemEstacionamentoD
"totalviagens": null,
ado
"totalestacionamentos": null,
"viagens": [],
"estacionamentos": []
}
{
"velocidade": null,
Acumulados "paradas": null,
"tempoConducao": null
}
{
"segundasIgnicaoLigada": null,
"tercasIgnicaoLigada": null,
"quartasIgnicaoLigada": null,
"quintasIgnicaoLigada": null,
"sextasIgnicaoLigada": null,
"sabadosIgnicaoLigada": null,
"domingosIgnicaoLigada": null,
"segundasIgnicaoDesligada": null,
TempoIgniçãoMensal
"tercasIgnicaoDesligada": null,
"quartasIgnicaoDesligada": null,
"quintasIgnicaoDesligada": null,
"sextasIgnicaoDesligada": null,
"sabadosIgnicaoDesligada": null,
"domingosIgnicaoDesligada": null,
"tempoIgnicoesDiarias": []
}

OdometroMensal {
"segundas": "null",
"tercas": "null",
"quartas": "null",
"quintas": "null",
"sextas": "null",
"sabados": "null",
"domingos": "null",
"totalKmMes": "null",

24
"odometroDiarios": []
}
{
"id": 0,
Evento
"nome": null,
}
{
"dispositivo": {},
FiltroComandos "evento": {},
"parametros": null,
}
{
"id": null,
"motoristaid": null,
"motorista": null,
"inicio": null,
"fim": null,
"ibutton": null,
"processado": false,
"dataprocessado": null,
"regras": null,
"cnh_numero": null,
"cnh_categoria": null,
"cnh_emissao": null,
"cnh_validade": null,
"status": null,
Motorista
"documento": null,
"cpf": null,
"email": null,
"senhacoacao1": null,
"codigoacesso": null,
"perguntasecreta": null,
"registroempregado": null,
"matricula": null,
"pessoa": null,
"empresa": null,
"dtNascimento": null,
"horarioTrabalho": [],
"contatos": [],
"enderecos": []
}
{
"diasSemana": null,
HorarioTrabalho "horarioInicio": null,
"horarioFim": null
}

25
{
"nome": null,
"senha": null,
"meio": null,
Contatos "tipo": null,
"valor": null,
"observacao": null
}

{
"tipo": null,
"endereco": null,
"numero": null,
Enderecos "complemento": null,
"bairro": null,
"cidade": null,
"uf": null
}
{
"data": null,
"diaSemana": null,
"tempoIgnicaoLigada": null,
"tempoIgnicaoDesligada": null,
TempoIgnicoesDiarias "tempoMotorOcioso": null,
"totalViagens": null,
"totalEstacionamentos": null,
"tempoEmViagem": null,
"tempoEmEstacionamento": null
}
"odometroDiarios": [
{
"data": null,
"diaSemana": null,
OdometroDiarios
"kmDia": null,
"kmDiaFormatado": null
}
]
{
"percentualValidade": null,
"percentualTravado": null,
PosicaoCheckList Sensores[],
Atuadores[],
Posicoes[]
}
Sensores [
"Antena GPS = null",
"Bateria Interna = null",
"Bateria Principal = null",
"Bloqueador = null",
"Correções = null",
"Ctd Ignição Desligada = null",
"Ctd Ignição Ligada = null",

26
"Data UTC = null",
"GPS. Leituras Inválidas. = null",
"GPS. Leituras Válidas. = null",
"GPS. Tempo de Invalidade Inicial. = null",
"Ignicao = null",
"Latitude = null",
"Local = null",
"Longitude = null",
"Modelo de Hardware = null",
"Modulo Antifurto = null",
"Média Faixa 1 = null",
"Média Faixa 2 = null",
"Média Faixa 3 = null",
"Odômetro GPS = null",
"Odômetro Parcial = null",
"Percurso = null",
"Pisca Alerta = null",
"Rastreador em = null",
"Sensor de Temperatura = null",
"Sinal GSM = null",
"Sirene = null",
"Status do carregamento da bateria interna = null",
"Tempo Ignição Desligada = null",
"Tempo Ignição Ligada = null",
"Tensão da Bateria = null",
"Tensão da Bateria Backup = null",
"Tipo de Comunicação = null",
"Trava de Baú = null",
"Velocidade Maxima = null",
"Velocidade Média = null",
"Velocidade Média Viagem = null"
]
[
“Bloqueador” = null
“Modelo de Hardware” = nul
“Pisca Alerta” = null
“Sinal GSM” = null
Atuadores “Sirene” = null
“Status do Jammer Ativo” = null
“Status do carregamento da bateria interna” = null
“Tipo de Comunicação” = null
“Trava de Baú” = null
]

27

Você também pode gostar