Quando Usar MQTT em Vez de HTTP para APIs: Guia Completo

Ashley Innocent

Ashley Innocent

13 março 2026

Quando Usar MQTT em Vez de HTTP para APIs: Guia Completo

Apidog para empresas

Implantação local

SSO & RBAC

Conforme SOC 2

Explorar Apidog Enterprise

RESUMO

Use MQTT para dispositivos IoT com bateria limitada, redes não confiáveis ou padrões de mensagens pub-sub. Use HTTP para APIs web/móveis padrão. MQTT usa cabeçalhos de 2 bytes contra mais de 100 bytes do HTTP, tornando-o ideal para dispositivos com restrições. O Modern PetstoreAPI implementa MQTT para coleiras de rastreamento de animais de estimação e alimentadores inteligentes.

Introdução

A coleira de rastreamento do seu animal de estimação precisa enviar atualizações de localização a cada 5 minutos. Ela funciona com uma bateria tipo moeda que deveria durar 6 meses. Usando HTTP, a bateria acaba em 2 semanas. Usando MQTT, ela dura os 6 meses completos.

HTTP é padrão para APIs, mas é projetado para navegadores web, não para dispositivos IoT. MQTT (Message Queuing Telemetry Transport) foi construído para dispositivos com restrições, largura de banda limitada e redes não confiáveis.

Modern PetstoreAPI usa HTTP para aplicativos web e móveis, mas MQTT para dispositivos IoT: coleiras de rastreamento de animais de estimação, alimentadores inteligentes e monitores de saúde.

💡
Se você está construindo ou testando APIs IoT, o Apidog suporta testes MQTT juntamente com HTTP. Você pode testar padrões pub-sub, validar formatos de mensagem e simular falhas de rede.
botão

Neste guia, você aprenderá quando o MQTT supera o HTTP, verá exemplos reais do Modern PetstoreAPI e descobrirá como escolher o protocolo certo para o seu caso de uso.

O Que é MQTT?

MQTT é um protocolo de mensagens pub-sub leve projetado para IoT.

Como o MQTT Funciona

Dispositivos publicam mensagens em tópicos. Outros dispositivos se inscrevem em tópicos:

Publicador (Coleira do Animal):
  Topic: pets/019b4132/location
  Payload: {"lat":37.7749,"lng":-122.4194,"battery":85}

Assinante (Aplicativo Móvel):
  Subscribe to: pets/019b4132/location
  Receives: {"lat":37.7749,"lng":-122.4194,"battery":85}

O Broker MQTT fica no meio, roteando mensagens de publicadores para assinantes.

Principais Recursos do MQTT

1. Cabeçalhos pequenos - MQTT: 2 bytes, HTTP: 100-500 bytes

2. Conexões persistentes - MQTT mantém as conexões abertas

3. Qualidade de Serviço (QoS) - QoS 0/1/2 para garantias de entrega

4. Última Vontade - Mensagem enviada se o dispositivo se desconectar inesperadamente

5. Mensagens retidas - O Broker armazena a última mensagem para novos assinantes

Comparação MQTT vs HTTP

Recurso MQTT HTTP
Tamanho do Cabeçalho 2 bytes 100-500 bytes
Padrão Pub-Sub Requisição-Resposta
Conexão Persistente Por requisição
Largura de Banda Muito baixo Maior
Impacto na Bateria Mínimo Significativo
Suporte do Navegador Via WebSocket Nativo

Exemplo de Largura de Banda

1000 atualizações de localização por dia:

MQTT usa 8x menos largura de banda.

Quando o MQTT Vence

1. Dispositivos IoT com Bateria Limitada

Coleira de rastreamento de animais:

Por quê: Conexão persistente, cabeçalhos pequenos, menos tempo de rádio.

2. Redes Não Confiáveis

Dispositivos IoT celulares com cobertura intermitente:

3. Comunicação Muitos-para-Muitos

Cenário de alimentador inteligente de animais:

Feeder 1 → pets/019b4132/feeding
Feeder 2 → pets/019b4127/feeding
App 1 → subscribes to pets/+/feeding (todos os animais)
App 2 → subscribes to pets/019b4132/feeding (um animal)

4. Dados de Sensores em Tempo Real

Monitor de saúde do animal enviando atualizações a cada segundo:

Quando o HTTP Vence

1. Aplicativos Web/Móveis Padrão

HTTP é universal:

2. Padrões de Requisição-Resposta

Obtendo detalhes do animal:

GET /pets/019b4132
200 OK
{"name":"Fluffy","species":"CAT"}

HTTP é mais simples para requisição-resposta.

3. Requisitos de Cache

O cache HTTP funciona nativamente:

MQTT não possui cache.

4. APIs RESTful

Códigos de status HTTP, métodos e semântica:

Como o Modern PetstoreAPI Usa MQTT

Modern PetstoreAPI implementa MQTT para dispositivos IoT.

Coleiras de Rastreamento de Animais

A coleira publica a localização:

Topic: pets/019b4132/location
QoS: 1 (pelo menos uma vez)
Payload: {
  "lat": 37.7749,
  "lng": -122.4194,
  "battery": 85,
  "timestamp": "2026-03-13T10:30:00Z"
}

Aplicativo móvel se inscreve:

const mqtt = require('mqtt');
const client = mqtt.connect('mqtts://mqtt.petstoreapi.com');

client.subscribe('pets/019b4132/location');

client.on('message', (topic, message) => {
  const location = JSON.parse(message);
  updateMap(location.lat, location.lng);
});

Alimentadores Inteligentes

O alimentador se inscreve na programação:

Topic: pets/019b4132/feeding-schedule
Retained: true
Payload: {
  "times": ["08:00", "18:00"],
  "amount": 100
}

O alimentador publica eventos de alimentação:

Topic: pets/019b4132/feeding-events
Payload: {
  "timestamp": "2026-03-13T08:00:15Z",
  "amount": 100,
  "dispensed": true
}

Monitores de Saúde

O monitor publica os sinais vitais:

Topic: pets/019b4132/health
QoS: 0 (envio único, alta frequência)
Payload: {
  "heartRate": 120,
  "temperature": 38.5,
  "activity": "resting"
}

Testando MQTT com Apidog

Apidog suporta testes MQTT juntamente com HTTP e outros protocolos.

Testar MQTT Pub-Sub

  1. Conectar ao broker MQTT
  2. Assinar tópicos
  3. Publicar mensagens de teste
  4. Validar formato da mensagem
  5. Testar níveis de QoS

Simular Falhas de Rede

Comparar com HTTP

Teste a mesma funcionalidade com ambos os protocolos:

Conclusão

MQTT e HTTP servem a propósitos diferentes. Use MQTT para dispositivos IoT com recursos limitados. Use HTTP para APIs web/móveis padrão.

Modern PetstoreAPI mostra como usar ambos: HTTP para APIs voltadas ao usuário, MQTT para dispositivos IoT. O protocolo certo depende das suas restrições, não de qual é "melhor".

Teste ambos os protocolos com o Apidog para encontrar o que melhor se adapta ao seu caso de uso.

botão

FAQ

O MQTT pode funcionar sobre HTTP?

MQTT pode rodar sobre WebSocket, que funciona sobre HTTP. Isso ajuda na travessia de firewall, mas perde alguns benefícios de eficiência do MQTT.

Quais são os níveis de QoS do MQTT?

O MQTT é seguro?

Sim, MQTT suporta criptografia TLS (MQTTS) e autenticação por nome de usuário/senha. O Modern PetstoreAPI usa MQTTS para todos os dispositivos IoT.

Navegadores podem usar MQTT sobre WebSocket. Bibliotecas como MQTT.js suportam ambientes de navegador.

Como o MQTT se compara ao WebSocket?

MQTT é um protocolo que pode rodar sobre WebSocket. WebSocket é uma camada de transporte. MQTT adiciona pub-sub, QoS e recursos específicos de IoT sobre o WebSocket.

Pratique o design de API no Apidog

Descubra uma forma mais fácil de construir e usar APIs

Quando Usar MQTT em Vez de HTTP para APIs: Guia Completo