Integração e API
GraphQL
Serve para reduzir excesso ou falta de dados em integrações complexas: GraphQL permite ao cliente declarar exatamente quais campos e relações deseja receber. Publicado pela Meta em 2015, usa schema tipado, queries, mutations e subscriptions sobre um endpoint único, normalmente via HTTP. Pode simplificar dashboards com muitos dispositivos, mas aumenta a complexidade do servidor, cache e autorização por campo. Para o morador, interfaces carregam menos dados quando a consulta é bem projetada.
🔀 Tipos de Comunicação
Query
Query declarativa
O cliente escolhe campos, relações e argumentos em uma única consulta, evitando múltiplas respostas fixas e reduzindo overfetching.
Mutation
Mutation
Operações de escrita alteram estados, criam objetos ou acionam comandos usando entradas tipadas e respostas selecionáveis.
Realtime
Subscription
Atualizações podem ser entregues em tempo real, frequentemente por WebSocket, quando estados ou eventos mudam.
Schema
Schema tipado
Tipos, campos, enums e relações formam um contrato introspectável que orienta validação e geração de clientes.
✅ Vantagens Arquiteturais
⚡
Resposta sob medida
Dashboards pedem apenas nome, estado, potência ou campos necessários, reduzindo payloads desnecessários.
⚡
Agregação de dados
Uma consulta pode atravessar dispositivos, ambientes, históricos e usuários sem encadear vários endpoints REST.
⚡
Contrato introspectável
Ferramentas geram documentação, autocomplete e validação diretamente a partir do schema publicado.
⚡
Evolução sem muitos endpoints
Novos campos podem ser adicionados ao schema sem criar uma nova URL para cada versão.