Integração e API

JSON-RPC

Quando um cliente envia um objeto com jsonrpc, method, params e id, o servidor executa a chamada e retorna result ou error. JSON-RPC 2.0 separa o formato da mensagem do transporte, podendo operar por HTTP, WebSocket ou TCP. Em comparação com REST, modela ações como métodos, não recursos. Isso simplifica APIs de dispositivos e gateways, mas reduz o uso direto de cache e semântica HTTP. O morador percebe respostas rápidas quando a API local é bem implementada.


🔀 Tipos de Comunicação
Request
Request
O cliente envia versão, nome do método, parâmetros posicionais ou nomeados e um identificador para correlacionar a resposta.
Response
Response
O servidor devolve result ou um objeto error com código, mensagem e dados adicionais.
Notify
Notification
Chamadas sem id não exigem resposta e servem para comandos unidirecionais ou eventos simples.
Agnóstico
Transporte independente
A mesma mensagem JSON pode trafegar por HTTP, WebSocket, TCP, serial ou outro canal definido pela implementação.
✅ Vantagens Arquiteturais
Formato compacto
Poucos campos obrigatórios reduzem complexidade de parsing em dispositivos e gateways.
Mapeamento direto de métodos
Comandos como relay.set ou device.get_status correspondem claramente a funções remotas.
Suporte a lote
Várias chamadas podem ser agrupadas em um array e processadas em uma única troca.
Flexibilidade de transporte
A API pode usar HTTP para chamadas pontuais e WebSocket para sessões persistentes mantendo o mesmo modelo.