API REST versus API HTTP versus API WebSocket
Entenda os compromissos entre a API REST, rica em recursos, a API HTTP, de baixa latência e baixo custo, e a API WebSocket, bidirecional, e escolha adequadamente.
API REST versus API HTTP versus API WebSocket é uma aula grátis de Cloud & IT Cert Prep no CoddyKit. Esta é a aula 1 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Cloud & IT Cert Prep, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Cloud & IT Cert Prep inclui 4 aulas no total.
Por que o API Gateway existe
O Amazon API Gateway é um serviço totalmente gerenciado que permite criar, publicar, proteger e monitorar APIs em qualquer escala. Ele funciona como a porta de entrada para seus serviços de backend — funções do Lambda, instâncias do EC2, backends HTTP ou qualquer serviço da AWS. O API Gateway gerencia o tráfego, a autorização, a limitação de taxa, o monitoramento e o versionamento de APIs, permitindo que seu backend se concentre na lógica de negócios em vez de se preocupar com a infraestrutura da API.
API REST: API tradicional completa
A API REST (produto original do API Gateway) oferece o conjunto mais amplo de recursos: transformação de requisições e respostas com modelos de mapeamento, limitação de taxa por método, planos de uso com chaves de API, armazenamento em cache de respostas, integração com WAF, rastreamento do X-Ray, políticas de recursos e TLS mútuo com certificado do cliente. As APIs REST são compatíveis com todos os tipos de integração: Lambda, HTTP, serviço da AWS, Mock e Lambda Proxy. Use a API REST quando precisar de recursos avançados, como transformação, armazenamento em cache ou planos de uso.
API HTTP: alternativa de baixa latência e baixo custo
A API HTTP foi projetada como uma alternativa mais simples, barata e rápida à API REST. Ela oferece suporte apenas às integrações Lambda proxy e HTTP proxy — não oferece integrações com serviços da AWS nem Mock. Principais vantagens: custo até 70% menor que o da API REST, menor latência, autorização JWT nativa com OIDC e OAuth 2.0 integrada (sem necessidade de um autorizador do Lambda em cenários comuns de autenticação) e implantação automática. Se você não precisa de armazenamento em cache, planos de uso ou transformação de requisições e respostas, a API HTTP é a melhor escolha.
# Create a simple HTTP API
aws apigatewayv2 create-api \
--name 'MyHttpAPI' \
--protocol-type HTTP \
--target 'arn:aws:lambda:us-east-1:123456789012:function:MyLambda'API WebSocket: comunicação bidirecional em tempo real
A API WebSocket mantém conexões persistentes e bidirecionais entre os clientes e o servidor. Diferentemente do HTTP (requisição-resposta), o WebSocket permite que o servidor envie mensagens aos clientes conectados a qualquer momento, sem que o cliente precise consultar o servidor continuamente. O API Gateway gerencia as conexões WebSocket e roteia as mensagens para funções do Lambda com base em expressões de rota. Use APIs WebSocket em aplicações em tempo real, como aplicativos de conversa, painéis ao vivo, edição colaborativa, jogos e cotações de ações.
Rotas WebSocket e gerenciamento de conexões
As APIs WebSocket têm três rotas integradas: $connect (acionada quando um cliente abre uma conexão), $disconnect (acionada quando uma conexão é fechada) e $default (captura mensagens sem correspondência). Você pode adicionar rotas personalizadas, como sendmessage, associadas a funções específicas do Lambda. Use a API de gerenciamento @connections para enviar mensagens de volta aos clientes conectados a partir da sua função do Lambda, usando o ID da conexão do cliente.
# Send a message to a specific WebSocket client from Lambda
import boto3
gw_client = boto3.client(
'apigatewaymanagementapi',
endpoint_url='https://abc123.execute-api.us-east-1.amazonaws.com/prod'
)
def lambda_handler(event, context):
connection_id = event['requestContext']['connectionId']
gw_client.post_to_connection(
Data='{"type": "message", "text": "Hello!"}',
ConnectionId=connection_id
)Comparação de recursos: REST vs HTTP vs WebSocket
Principais diferenças de forma resumida:
- API REST: conjunto completo de recursos (armazenamento em cache, planos de uso, transformações, WAF), custo mais alto e suporte a todos os tipos de integração
- API HTTP: somente proxy do Lambda/HTTP, 70% mais barata, autenticação JWT integrada, menor latência e sem armazenamento em cache ou planos de uso
- API WebSocket: conexões bidirecionais persistentes, capacidade de envio pelo servidor e cobrança por milhão de mensagens e por minuto de tempo de conexão
Para o exame SAA-C03: perguntas sobre HTTP sem recursos em tempo real ou avançados → API HTTP. Envio em tempo real pelo servidor → WebSocket. Recursos complexos de API → API REST.
Estágios e implantações
As APIs do API Gateway são implantadas em estágios (por exemplo, dev, staging, prod). Cada estágio tem sua própria URL, configurações de limitação de taxa e pode referenciar um instantâneo de implantação específico. Use variáveis de estágio (semelhantes a variáveis de ambiente) para parametrizar os endpoints de backend por estágio — por exemplo, aponte o estágio dev para um alias de desenvolvimento do Lambda e prod para o alias de produção, sem duplicar a configuração da API.
# REST API: create a deployment and stage
aws apigateway create-deployment \
--rest-api-id 'abc123' \
--stage-name 'prod'
# Set stage variable
aws apigateway update-stage \
--rest-api-id 'abc123' \
--stage-name 'prod' \
--patch-operations 'op=replace,path=/variables/lambdaAlias,value=prod'Nomes de domínio personalizados e mapeamentos de caminho base
Por padrão, as URLs do API Gateway contêm o ID da API (por exemplo, abc123.execute-api.us-east-1.amazonaws.com). Para uso em produção, crie um nome de domínio personalizado respaldado por um certificado do ACM e associe-o à sua API e ao seu estágio. Use mapeamentos de caminho base para hospedar várias APIs em um único domínio (por exemplo, api.example.com/orders → API de pedidos, api.example.com/users → API de usuários). Os nomes de domínio personalizados exigem um registro de alias do Route 53 apontando para o endpoint do API Gateway.
APIs otimizadas para borda, regionais e privadas
As APIs REST podem ser implantadas em três tipos de endpoint: otimizado para borda (front-end do CloudFront para distribuição global, opção padrão), regional (sem CloudFront, com menor latência para clientes na mesma região ou quando você adiciona seu próprio CloudFront) e privado (acessível somente de dentro da sua VPC por meio de um endpoint de VPC de interface, para microsserviços internos). As APIs HTTP são compatíveis com endpoints otimizados para borda e regionais. As APIs WebSocket são compatíveis com endpoints regionais e privados. Escolha Regional para APIs consumidas na mesma região ou quando usar distribuições personalizadas do CloudFront.
Implantações canário com o API Gateway
As APIs REST do API Gateway são compatíveis com implantações canário em um estágio. Você pode direcionar uma porcentagem do tráfego para uma implantação canário (nova versão), enquanto o restante vai para a implantação de produção. Monitore as taxas de erro e a latência do canário; se estiver estável, promova-o para 100%. Se surgirem problemas, reverta a alteração definindo o peso do canário como 0. Isso é análogo ao roteamento ponderado de aliases do Lambda e permite atualizações graduais e seguras da API sem alternar entre ambientes azul/verde.
Escolhendo o tipo certo de API para o exame
Palavras-chave das perguntas do exame SAA-C03 para identificar o tipo de API: 'API simples e econômica' → API HTTP; 'bidirecional em tempo real', 'envio pelo servidor' ou 'conversa' → API WebSocket; 'transformação de requisições', 'planos de uso', 'limitação por chave de API' ou 'armazenamento de respostas em cache' → API REST. Quando a pergunta for simplesmente “expor o Lambda como um endpoint HTTP com baixo custo”, a API HTTP é a melhor opção. Quando a pergunta envolver recursos complexos de gerenciamento de APIs ou parceiros, a API REST geralmente é a resposta correta.
Verificação rápida
Teste sua compreensão dos conceitos do AWS Solutions Architect (SAA-C03) abordados nesta lição.
Recapitulação da lição
Nesta lição, você aprendeu que: a API REST oferece o conjunto completo de recursos do API Gateway (armazenamento em cache, transformações, planos de uso, WAF) a um custo mais alto; a API HTTP é 70% mais barata, tem autenticação JWT integrada e menor latência, sendo ideal para cenários de proxy do Lambda/HTTP sem recursos avançados; e a API WebSocket permite comunicação em tempo real com envio pelo servidor por meio de conexões persistentes, para aplicativos de conversa, jogos e aplicações de dados ao vivo. A seguir, exploraremos as integrações do API Gateway com Lambda, backends HTTP e respostas simuladas.
Perguntas Frequentes
A aula “API REST versus API HTTP versus API WebSocket” é grátis?
Sim — o texto completo de “API REST versus API HTTP versus API WebSocket” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Cloud & IT Cert Prep, atualize para CoddyKit PRO. O curso de Cloud & IT Cert Prep inclui 4 aulas no total.
O que vou aprender em “API REST versus API HTTP versus API WebSocket”?
Entenda os compromissos entre a API REST, rica em recursos, a API HTTP, de baixa latência e baixo custo, e a API WebSocket, bidirecional, e escolha adequadamente. Você pratica Cloud & IT Cert Prep com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar Cloud & IT Cert Prep?
Nenhuma experiência prévia é necessária. Cloud & IT Cert Prep no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 1 de 4.
Quanto tempo leva a aula “API REST versus API HTTP versus API WebSocket”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de Cloud & IT Cert Prep?
Sim. Cada aula de Cloud & IT Cert Prep inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- API REST versus API HTTP versus API WebSocket
- Integrações: Lambda, HTTP e simulação
- Autorização: IAM, autorizadores do Lambda e Cognito
- Limitação, armazenamento em cache e planos de uso