Pacote Types
O pacote types
fornece uma estrutura organizada de classes e interfaces para representar dados e operações relacionadas ao Jimi IoTHub. Ele é dividido em três categorias principais:
- Push: Tipos relacionados a notificações enviadas pelos dispositivos para o servidor.
- Query: Tipos relacionados a consultas feitas pelo servidor para obter informações dos dispositivos.
- Request: Tipos relacionados ao envio de instruções para os dispositivos atráves do servidor.
Estrutura Geral
Push
Os tipos de push são usados para representar notificações enviadas pelos dispositivos, como dados de GPS, alarmes, ou eventos de login/logout. Exemplos de classes:
GpsPushRequest
e GpsPushResponse
AlarmPushRequest
e AlarmPushResponse
LoginNotificationRequest
e LoginNotificationResponse
Query
Os tipos de query são usados para consultas feitas pelo servidor, como alarmes, coordenadas ou dados de temperatura. Exemplos de classes:
GetAlarmRequest
e GetAlarmResponse
GetTrackerRequest
e GetTrackerResponse
GetTemperatureRequest
e GetTemperatureResponse
Request
Os tipos de request são usados para enviar diversas instruções aos dispositivos através do servidor. Exemplo de classes:
SendCommandRequest
e SendCommandResponse
.
Exemplo de Utilização
Requisição e Resposta de Push (GPS)
Lidando com uma requisição
Você pode criar uma requisição de push utilizando o método toContent
para serializar os dados:
import { Push } from '@motora-ai/jimi-iot-hub-types';
// Objeto simples obtido via parse de json ou urlencode (varia dependendo da requisição).
const requestObj = {
token: '.....',
data_list: [
{
deviceImei: '123456789012345',
gpsTime: "2023-08-17 09:37:09",
gateTime: "2023-08-17 09:37:09",
lat: -23.55052,
lng: -46.633308,
gpsSpeed: 60,
...
}
]
}
const gpsPushRequest = Push.GpsPushRequest.fromContent(requestObj); // Conteúdo tratado, melhor organizado, com tipagem adequada.
// Faça sua lógica
const gpsPushResponse = new Push.GpsPushResponse({
code: 0,
message: "OK"
});
// Objeto com conteúdo {code: 0, msg: 'OK'}
const responseObj = gpsPushResponse.toContent();
// Agora basta enviar o objeto de acordo com o formato
// adequado para requisição. Se for um json, já está tudo feito, se for urlencode, basta utilizar o encode do "querystring" (lib nativa do node) ou "fast-querystring" (pacote da comunidade).