API REST: o que é, como funciona e como usar (guia 2026)

API REST é o padrão dominante de comunicação entre sistemas na web: é assim que seu front-end conversa com o back-end, que seu ERP consulta um CNPJ e que seu e-commerce calcula frete. Mesmo assim, boa parte dos devs usa REST todos os dias sem saber o que a sigla exige de verdade, e a confusão entre “REST” e “RESTful” segue viva nas entrevistas. Este guia explica os princípios da arquitetura, os métodos HTTP e status codes que importam, e mostra exemplos reais de requisição e resposta.

O que é uma API REST?

API REST é uma interface de comunicação entre sistemas que segue o estilo arquitetural REST (Representational State Transfer): os dados são expostos como recursos identificados por URLs, manipulados pelos métodos do protocolo HTTP (GET, POST, PUT, DELETE) e transferidos em formato padronizado, quase sempre JSON.

REST não é um protocolo nem uma biblioteca: é um conjunto de princípios descrito por Roy Fielding em sua tese de doutorado, em 2000. Fielding foi um dos autores da especificação do HTTP, e o REST nasceu como uma forma de aproveitar o que o protocolo já oferece (métodos, status codes, cache) em vez de reinventar tudo por cima, como o SOAP fazia com seus envelopes XML.

Os 6 princípios da arquitetura REST

Pra uma API ser REST de verdade, Fielding definiu seis restrições (constraints). Na prática, são elas que diferenciam uma API bem desenhada de “um endpoint que retorna JSON”:

  • Cliente-servidor: front-end e back-end evoluem de forma independente. O cliente não sabe como o dado é armazenado; o servidor não sabe como ele é exibido.
  • Stateless: cada requisição carrega tudo que o servidor precisa pra respondê-la (token de autenticação incluso). O servidor não guarda sessão entre chamadas, o que permite escalar horizontalmente sem afinidade de servidor.
  • Cacheável: as respostas declaram se podem ser cacheadas e por quanto tempo (headers Cache-Control, ETag). Um GET de CEP, por exemplo, pode viver horas em cache sem prejuízo.
  • Interface uniforme: recursos identificados por URI, manipulados por representações (JSON), com mensagens autodescritivas. É o princípio que torna qualquer API REST familiar pra quem nunca a viu.
  • Sistema em camadas: o cliente não precisa saber se fala com o servidor final, um load balancer ou um gateway. Camadas intermediárias (proxy, CDN, cache) entram sem quebrar o contrato.
  • Code on demand (opcional): o servidor pode enviar código executável ao cliente. É a única restrição opcional e raramente usada em APIs de dados.

Como funciona uma API REST na prática

Recursos e URIs

Em REST, tudo é recurso: cliente, pedido, produto. Cada recurso tem um identificador único (URI), e a hierarquia das URLs expressa a relação entre eles. A convenção: substantivos no plural, sem verbos (o verbo é o método HTTP):

GET    /clientes              → lista clientes
GET    /clientes/42           → detalha o cliente 42
POST   /clientes              → cria um cliente
PUT    /clientes/42           → substitui o cliente 42
DELETE /clientes/42           → remove o cliente 42
GET    /clientes/42/pedidos   → pedidos do cliente 42
Hierarquia de recursos em uma API REST
Recursos e sub-recursos: a hierarquia das URLs expressa a relação entre eles

Métodos HTTP: o verbo da operação

Método Ação Idempotente Tem corpo?
GET ler recurso não
POST criar recurso sim
PUT substituir recurso inteiro sim
PATCH atualizar parte do recurso depende sim
DELETE remover recurso raramente

A coluna de idempotência importa mais do que parece: ela define o que é seguro repetir quando a rede falha. O tema rende guia próprio: veja idempotência em APIs.

Status codes que todo dev precisa conhecer

Código Significado Quando usar
200 OK leitura ou atualização bem-sucedida
201 Created recurso criado via POST
204 No Content sucesso sem corpo (DELETE)
400 Bad Request payload inválido ou malformado
401 Unauthorized sem autenticação válida
403 Forbidden autenticado, mas sem permissão
404 Not Found recurso não existe
409 Conflict conflito de estado (registro duplicado)
422 Unprocessable Entity sintaxe ok, validação de negócio falhou
429 Too Many Requests rate limit excedido
500 Internal Server Error erro não tratado no servidor

A lista completa, com os detalhes de cada família, está no nosso guia de HTTP status codes.

Exemplo real de requisição e resposta

Uma consulta de CNPJ numa API REST típica:

curl -X GET "https://api.exemplo.com.br/v2/cnpj/19131243000197" \
  -H "Authorization: Bearer SEU_TOKEN" \
  -H "Accept: application/json"
HTTP/1.1 200 OK
Content-Type: application/json
Cache-Control: max-age=86400

{
  "cnpj": "19131243000197",
  "razao_social": "OPEN KNOWLEDGE BRASIL",
  "situacao_cadastral": "ATIVA",
  "cnae_principal": { "codigo": "9430-8/00", "descricao": "Atividades de associações..." }
}

Repare nos princípios em ação: a URL identifica o recurso (CNPJ específico), o método expressa a intenção (GET = leitura), a resposta declara o formato (Content-Type) e a política de cache (Cache-Control), e a autenticação viaja na própria requisição (stateless).

Diagrama de sequência de requisições REST com métodos e status codes
O ciclo completo: método expressa a intenção, status code comunica o resultado

API REST vs RESTful: qual a diferença?

REST é o estilo arquitetural; RESTful é o adjetivo pra APIs que o seguem. Na prática, os termos viraram sinônimos, e a distinção que sobreviveu é de grau: uma API “RESTful de verdade” cumpre as seis restrições, enquanto muita API por aí usa HTTP e JSON mas guarda estado de sessão, ignora cache e trata tudo como POST. Funciona? Funciona. É REST? Tecnicamente não. Em entrevista, responda assim: REST é a especificação, RESTful é a implementação que a respeita.

Boas práticas de design de API REST

Versionamento

Toda API muda. Versionar desde o primeiro dia evita quebrar clientes em produção. As duas abordagens comuns: versão na URI (/v2/clientes, mais visível e fácil de rotear) ou no header (Accept: application/vnd.api.v2+json, mais “pura” e menos adotada). A versão na URI domina o mercado por simplicidade.

Autenticação

Os três modelos mais comuns, do mais simples ao mais completo: API key (um token fixo no header, padrão em APIs de consulta), JWT (token assinado com expiração, padrão em aplicações com login) e OAuth2 (delegação de acesso entre serviços, padrão em integrações com terceiros). Em todos os casos, a credencial viaja em header, nunca na URL, porque URLs param em logs.

HATEOAS: links na resposta

HATEOAS (Hypermedia as the Engine of Application State) é a parte do REST que quase ninguém implementa: a resposta inclui links pras ações possíveis a partir dali, e o cliente navega pela API como navega por páginas web:

{
  "id": 42,
  "status": "aguardando_pagamento",
  "_links": {
    "self":     { "href": "/pedidos/42" },
    "pagar":    { "href": "/pedidos/42/pagamento", "method": "POST" },
    "cancelar": { "href": "/pedidos/42", "method": "DELETE" }
  }
}

Vale a pena? Pra APIs públicas com muitos consumidores, sim: o cliente descobre capacidades sem ler changelog. Pra APIs internas, a maioria dos times pula essa restrição e documenta no OpenAPI.

REST vs SOAP vs GraphQL vs gRPC

Critério REST SOAP GraphQL gRPC
Formato JSON (livre) XML (rígido) JSON (schema) Protobuf (binário)
Transporte HTTP/1.1+ HTTP, SMTP HTTP (POST único) HTTP/2
Busca de dados endpoints fixos operações fixas cliente escolhe campos métodos tipados
Cache HTTP nativo difícil limitado não
Melhor pra APIs públicas e CRUD legado corporativo front-ends com telas variadas microsserviços internos

REST continua sendo o padrão de fato pra APIs públicas: tem o menor atrito de adoção (qualquer linguagem fala HTTP e JSON), aproveita o cache da web e qualquer dev sabe consumi-lo. GraphQL e gRPC resolvem dores específicas (over-fetching e performance interna, respectivamente), não substituem REST como interface universal.

Perguntas frequentes

O que é uma API REST?

É uma interface de comunicação entre sistemas que expõe dados como recursos acessíveis por URLs e manipulados via métodos HTTP (GET, POST, PUT, DELETE), com respostas geralmente em JSON. Segue os princípios do estilo arquitetural REST, definido por Roy Fielding em 2000.

Como funciona uma API REST?

O cliente envia uma requisição HTTP indicando o recurso (URL), a operação (método) e, quando necessário, os dados (corpo em JSON) e a autenticação (header). O servidor processa e devolve um status code indicando o resultado e o recurso solicitado no corpo da resposta.

Qual a diferença entre API REST e RESTful?

REST é o conjunto de princípios arquiteturais; RESTful descreve a API que os implementa. No uso cotidiano os termos são intercambiáveis, mas a rigor uma API só é RESTful quando cumpre as seis restrições do REST, incluindo stateless e interface uniforme.

Quais são os tipos de API?

Pela arquitetura, os principais estilos são REST, SOAP, GraphQL e gRPC. Pelo acesso, as APIs se dividem em públicas (abertas a qualquer dev), parceiras (acesso mediante contrato) e privadas (uso interno da empresa).

Qual um exemplo de API REST?

As APIs de consulta de dados brasileiras são exemplos clássicos: você faz um GET em /cnpj/{numero} ou /cep/{numero} com seu token no header e recebe os dados em JSON. As APIs do GitHub, Stripe e Mercado Pago seguem o mesmo modelo.

Conclusão

REST venceu porque aposta no que a web já sabe fazer: URLs identificam coisas, métodos HTTP expressam intenção, status codes comunicam resultado e o cache funciona de graça. Dominar esses fundamentos (recursos bem modelados, métodos e códigos corretos, stateless de verdade) vale mais do que decorar frameworks, porque é o contrato que todas as APIs que você vai consumir e construir têm em comum. Se quiser ver os princípios aplicados, as APIs de consulta do Hub do Desenvolvedor são um bom laboratório: REST puro, com token no header e JSON na resposta.

Leituras relacionadas

Compartilhe nas mídias: