Fluxo do processo
Docas são portais: a tag que passa é lida em todas as antenas, em sequência. Pontos esmaecidos estão fora do filtro de emissão.
Leituras recebidas 0
| Hora | Local | Antena | IP | Código alfa | EPC |
|---|
Último payload
aguardando leitura…
| Data/hora | Local | Antena | IP | Código alfa | EPC |
|---|
Clique num código alfa em qualquer tabela ou informe uma tag acima.
Autenticação
Todas as rotas (menos o login) exigem o cabeçalho Authorization: Bearer <token>. O token vale 24 horas.
POST /api/auth/login
Content-Type: application/json
{ "usuario": "admin", "senha": "admin123" }
→ { "token": "eyJ...", "tipo": "Bearer", "expiraEm": "2026-10-31T12:00:00.000Z", "usuario": {...} }
Formato da leitura
{
"epc": "32334B374D323533353430373036324D",
"codigoalfa": "23K7M2535407062M",
"datetime": "2026-10-30T12:51:53.052Z",
"local": "doca1",
"antenna": 1,
"ip": "192.168.0.120"
}
epc é o codigoalfa em ASCII convertido para hexadecimal, byte a byte: 2→32, 3→33, K→4B… datetime é sempre UTC (ISO 8601).
Tempo real — Socket.IO
import { io } from "socket.io-client";
const socket = io("", {
auth: { token: "SEU_TOKEN" },
query: { local: "doca1,doca2" } // filtro opcional: local, antenna, ip
});
socket.on("leitura", (leitura) => console.log(leitura));
// trocar o filtro sem reconectar
socket.emit("filtro", { local: ["doca1"], antenna: [1, 2, 3] });
Tempo real — WebSocket puro
Para integrar sem a biblioteca do Socket.IO. Cada mensagem recebida é uma leitura em JSON.
/ws?token=SEU_TOKEN&local=doca1&antenna=1,2,3
// trocar o filtro: envie
{ "filtro": { "local": ["expedicao"] } }
Rotas REST
| Método | Rota | Descrição |
|---|---|---|
| POST | /api/auth/login | Gera o token (24h) |
| GET | /api/auth/me | Dados do token atual |
| GET | /api/leituras | Leituras retroativas. Parâmetros: inicio, fim (ISO 8601), local, antenna, ip, epc, codigoalfa (aceitam vários separados por vírgula), pagina, limite (máx. 1000), ordem (asc|desc) |
| GET | /api/leituras/resumo | Totais por local e antena (mesmos filtros) |
| GET | /api/tags/:codigo | Rastreio da tag pelo processo (código alfa ou EPC) |
| GET | /api/locais | Pontos de leitura: local, IP, antenas, tipo e destino |
| GET | /api/conversao | ?codigoalfa=... ou ?epc=... |
| GET / PUT | /api/config | Configuração de emissão (ativo, intervaloMs, filtros) |
| POST | /api/simulador/disparar | { "local": "doca1", "codigoalfa"?: "...", "seguirFluxo"?: true } |
| GET | /api/status | Simulador, clientes conectados e contadores |
Exemplo: GET /api/leituras?inicio=2026-10-30T00:00:00-03:00&local=doca1&antenna=2&limite=50