Aprenda a dominar os conceitos da API REST, desde o básico até os padrões mais avançados, com mais de 50 perguntas de entrevista, exemplos práticos de código e tabelas de referência rápida.
As APIs REST são a base da maioria das integrações da internet. Se você está se candidatando a uma vaga de backend, full stack ou engenheiro de software, provavelmente vai ter que responder perguntas sobre design de API REST, métodos HTTP e padrões de autenticação.
Neste guia, vou te mostrar as perguntas que os entrevistadores realmente fazem. Eu organizei por nível de dificuldade e tipo de função, pra você se concentrar no que é mais importante pra posição que você quer. Cada resposta inclui exemplos práticos e, quando for o caso, trechos de código que você pode adaptar.
Uma coisa pra ter em mente: os entrevistadores testam os fundamentos com muito mais frequência do que os tópicos avançados. Se você dominar o básico (métodos HTTP, códigos de status, ausência de estado), vai conseguir lidar com a maioria das entrevistas sobre API REST com confiança. Os padrões arquitetônicos sofisticados vêm depois.
Perguntas básicas sobre REST API em entrevistas
Essas perguntas testam seus conhecimentos básicos. Espere encontrá-las em quase todas as entrevistas, independentemente do nível de senioridade.
1. O que é REST e quais são suas limitações?
REST significa Representational State Transfer (Transferência de Estado Representacional). É um estilo arquitetônico para projetar aplicativos em rede, definido por Roy Fielding em sua tese de doutorado de 2000.
O REST tem seis restrições:
Cliente-Servidor: Separação das preocupações entre a interface do usuário e o armazenamento de dados
sem estado: Cada pedido tem todas as informações necessárias para ser concluído.
Cacheável: As respostas devem indicar se podem ser armazenadas em cache.
Sistema em camadas: Os componentes não conseguem ver além da sua camada imediata.
Interface uniforme: Maneira padronizada de interagir com recursos
Código sob demanda (opcional): Os servidores podem mandar código executável para os clientes.
2. Qual é a diferença entre REST e SOAP?
REST é um estilo arquitetônico; SOAP é um protocolo. O REST normalmente usa JSON sobre HTTP e aproveita os métodos HTTP padrão. O SOAP usa só XML e define seu próprio formato de mensagens com envelopes e os aders.
Aspecto
REST
SOAP
Formato
JSON, XML, outros
Apenas XML
Transporte
HTTP
HTTP, SMTP, outros
Armazenamento em cache
Cache HTTP nativo
Não armazenável em cache
Desempenho
Leve
Maiores despesas gerais
O SOAP ainda fazsentido para sistemas empresariais que precisam de contratos formais (WSDL) ou segurança no nível da mensagem (WS-Security).
3. O que são métodos HTTP e quando você usa cada um deles?
Os métodos HTTP definem a ação a ser executada em um recurso.
Método
Objetivo
Exemplo
GET
Recuperar um recurso
GET /users/123
POST
Crie um novo recurso
POST /users
PUT
Substitua um recurso completamente
PUT /users/123
PATCH
Atualizar parcialmente um recurso
PATCH /users/123
DELETE
Remover um recurso
DELETE /users/123
4. Qual é a diferença entre PUT e POST?
POST cria um novo recurso onde o servidor decide o URI. PUT substitui um recurso em um URI específico que o cliente escolhe.
POST /users → Server creates user, returns /users/123
PUT /users/123 → Client specifies URI, replaces entire resourceTecnologia
Se você fizer um PUT para um URI que não existe, o servidor pode criá-lo. Se você fizer um PUT para um URI que já existe, vai substituir todo o recurso.
5. Qual é a diferença entre PUT e PATCH?
PUT substitui todo o recurso. O PATCH faz algumas mudanças.
# PUT replaces everything
PUT /users/123{"name":"Khalid","email":"[email protected]","role":"admin"}# PATCH updates only specified fields
PATCH /users/123{"role":"admin"}Tecnologia
6. O que significa “sem estado” em REST?
Sem estado significa que cada solicitação precisa ter todas as informações que o servidor precisa para processá-la. O servidor não guarda nenhum contexto do cliente entre as solicitações.
Isso quer dizer que não tem sessões no servidor. Se um usuário estiver autenticado, o cliente precisa mandar as credenciais (normalmente um token) com cada solicitação.
7. O que faz uma API ser RESTful?
Uma API é realmente RESTful quando cumpre todas as restrições REST, incluindo HATEOAS (Hypermedia as the Engine of Application State). Na prática, a maioria das APIs que se autodenominam “REST” são, na verdade, “semelhantes ao REST” ou estão no nível 2 do Modelo de Maturidade de Richardson. E, sinceramente, isso é suficiente para a maioria dos casos de uso.
Níveis do Modelo de Maturidade de Richardson para APIs REST. Imagem do autor.
8. Quais são os códigos de status HTTP básicos que você precisa saber?
Você deve conhecer pelo menos esses sete códigos de status essenciais que cobrem a maioria dos cenários de API:
Código
Nome
Quando usar
200
OK
GET, PUT, PATCH bem-sucedidos
201
Criado
POST bem-sucedido (inclui cabeçalho Location)
204
Sem conteúdo
Exclusão bem-sucedida
400
Pedido inválido
Sintaxe mal formada
404
Não encontrado
O recurso não existe.
500
Erro interno do servidor
Falha no servidor
9. Qual é a diferença entre um recurso e um endpoint?
Um recurso é a entidade de dados (usuário, pedido, produto). Um endpoint é o caminho da URL que dá acesso a esse recurso.
Resource: User
Endpoints: GET /users, GET /users/123, POST /usersTecnologia
10. Quais são as melhores práticas para o design de URIs?
Use substantivos, não verbos. Mantenha os URIs em letras minúsculas com hífens para nomes com várias palavras. Use substantivos no plural para coleções.
Evite aninhamentos profundos. Em vez de /users/123/posts/456/comments/789, dá uma olhada em /comments/789 ou /comments?post_id=456.
11. O que é idempotência e quais métodos HTTP são idempotentes?
Uma operação é idempotente se, ao fazê-la várias vezes, dáo mesmo resultado que fazer uma vez só.
Método
Idempotente
Por que
GET
Sim
A leitura não altera o estado
PUT
Sim
Substituir pelos mesmos dados dá o mesmo resultado.
DELETE
Sim
Apagar duas vezes deixa o recurso apagado
POST
Não
Criar duas vezes gera dois recursos
PATCH
Não*
Depende da operação
Um PATCH que define um valor éidempotente; um PATCH que incrementa um contador não é.
12. Qual é a diferença entre métodos seguros e idempotentes?
Os métodos seguros não alteram os recursos (GET, HEAD, OPTIONS). Os métodos idempotentes podem ser chamados várias vezes com o mesmo efeito (GET, PUT, DELETE).
Todos os métodos seguros são idempotentes, mas nem todos os métodos idempotentes são seguros. DELETE é idempotente, mas não é seguro porque altera o estado.
13. Quando você deve usar parâmetros de consulta em vez de parâmetros de caminho?
Os parâmetros de caminho identificam um recurso específico. Os parâmetros de consulta filtram, classificam ou paginam coleções.
A negociação de conteúdo permite que os clientes solicitem diferentes representações de um recurso. O cliente manda um cabeçalho Accept e o servidor responde com o formato certo.
Accept: application/json → Server returns JSON
Accept: application/xml → Server returns XMLTecnologia
15. Qual é o objetivo do método OPTIONS?
OPTIONS mostra os métodos HTTP que um servidor suporta para uma URL específica. Os navegadores usam isso para solicitações CORS pré-voo, pra ver se as solicitações entre origens são permitidas.
Perguntas intermediárias sobre REST API em entrevistas
Essas perguntas testam a aplicação prática e a tomada de decisões. Espere encontrá-los em cargos de nível médio.
16. Qual é a diferença entre 401 e 403?
Esse é o par de códigos de status que mais confunde a galera. Já vi engenheiros experientes confundirem isso nas revisões de código.
401 Não autorizado
Significa não autenticado. O servidor não sabe quem você é. Sua resposta deve pedir pro usuário fazer login.
403 Proibido
Quer dizer, sem autorização. O servidor sabe quem você é, mas você não tem permissão. Reautenticar não vai ajudar.
Diagrama do fluxograma de decisão de erro de autenticação versus autorização. Imagem do autor.
17. Qual é a diferença entre 400 e 422?
Aqui estão alguns exemplos que mostram a diferença:
400 Pedido inválido
Isso mostra que a sintaxe está errada. O servidor não consegue analisar a solicitação (estrutura JSON inválida, cabeçalhos necessários ausentes).
422 Entidade não processável
Isso mostra que a sintaxe está certa, mas tem erros de semântica. O JSON está certo, mas os dados não passam na validação (formato de e-mail errado, senha muito curta).
Um ETag é um identificador de versão para um recurso. O servidor manda isso nas respostas; o cliente manda de volta nas solicitações seguintes pra ver se o recurso mudou.
# First request
GET /users/123
Response: ETag: "abc123"
# Subsequent request
GET /users/123
If-None-Match: "abc123"
Response: 304 Not Modified (if unchanged)Tecnologia
22. Quais métodos de autenticação são usados para APIs REST?
Os quatro métodos de autenticação mais comuns são Chaves API, Tokens Portadores, OAuth 2.0 e JWT:
Na prática, a maioria das APIs não implementa totalmente o HATEOAS. Conheça o conceito, mas não espere implementá-lo na maioria dos trabalhos. Mesmo as grandes empresas de tecnologia raramente criam APIs totalmente compatíveis com HATEOAS.
26. Como você lida com erros de forma consistente?
Use o formato RFC 7807 Problem Details para respostas de erro consistentes:
{"type":"https://api.example.com/errors/validation","title":"Validation Error","status":422,"detail":"Email format is invalid","instance":"/users"}Tecnologia
27. O que é limitação de taxa e por que é importante?
A limitação de taxa protege sua API contra abusos e garante um uso justo. Resposta comum:
HTTP/1.1 429 Too Many Requests
Retry-After: 3600
X-RateLimit-Limit: 1000
X-RateLimit-Remaining: 0Tecnologia
28. Como você faz a filtragem e a classificação?
Use parâmetros de consulta com convenções claras:
# Filtering
GET /products?category=electronics&price[gte]=100&price[lte]=500
# Sorting (prefix - for descending)
GET /users?sort=-created_at,nameTecnologia
Perguntas avançadas sobre API REST para entrevistas
Essas perguntas testam o raciocínio arquitetônico. Espere encontrá-los em cargos de chefia.
29. O que mudou entre o OAuth 2.0 e o OAuth 2.1?
O OAuth 2.1 junta as melhores práticas de segurança:
Recurso
OAuth 2.0
OAuth 2.1
PKCE
Opcional
Obrigatório para TODOS os clientes
Concessão implícita
Compatível
Removido
Concessão de senha
Compatível
Removido
URI de redirecionamento
Correspondência flexível
É preciso que a correspondência seja exata
A principal lição: use o fluxo de código de autorização com PKCE para todos os tipos de clientes.
30. Como você implementa a idempotência para pontos finais de pagamento?
Use chaves idempotentes para tornar as solicitações POST seguras para novas tentativas:
asyncdefhandle_payment(request: Request, payment: PaymentCreate):
idempotency_key = request.headers.get("Idempotency-Key")# Check if already processed
cached =await redis.get(f"idem:{idempotency_key}")if cached:return JSONResponse(json.loads(cached))# Process payment
result =await process_payment(payment)# Cache result (24-hour TTL)await redis.setex(f"idem:{idempotency_key}",86400, json.dumps(result))return resultTecnologia
O cliente gera um UUID e o envia junto com a solicitação. Se a mesma chave aparecer de novo, manda a resposta que tá guardada no cache.
31. Como você projetaria um limitador de taxa distribuído?
Para sistemas distribuídos, você não pode usar contadores na memória porque o tráfego é balanceado entre as instâncias. Essa é uma armadilha comum que confunde os candidatos.
Arquitetura:
Use o Redis para armazenamento centralizado de contadores
Implementar o algoritmo Token Bucket para tolerância a picos
Use operações atômicas (scripts Lua) para evitar condições de corrida.
# Pseudocode for Token Bucket
tokens = redis.get(user_id)or max_tokens
if tokens >0:
redis.decr(user_id)
process_request()else:return429Tecnologia
32. Quando você escolheria o gRPC em vez do REST?
A escolha entre gRPC e REST depende dos seus requisitos específicos.
Escolha o gRPC para:
Comunicação interna de microsserviços (melhoria de 5 a 10 vezes na taxa de transferência)
Requisitos de streaming em tempo real
Mobile-to-backend com restrições de largura de banda
Ambientes poliglotas que precisam de contratos rigorosos
Escolha REST para:
APIs públicas com vários tipos de usuários
Aplicativos web (suporte universal para navegadores)
Operações CRUD simples
Equipes que não conhecem os Protocol Buffers
33. Como você lida com operações de longa duração?
Use o padrão de solicitação assíncrona:
O cliente manda uma solicitação
O servidor devolve 202 Accepted com uma URL de status
O cliente fica checando o URL de status até terminar.
POST /reports
Response: 202 Accepted
Location: /reports/abc123/status
GET /reports/abc123/status
Response: {"status": "processing", "progress": 45}
GET /reports/abc123/status
Response: {"status": "completed", "result_url": "/reports/abc123"}Tecnologia
34. O que é o padrão Saga?
O Saga lida com transações distribuídas entre microsserviços sem bloqueio. Cada serviço faz uma transação local e publica um evento. Se uma etapa falhar, as transações de compensação desfazem as etapas anteriores.
Order Created → Payment Processed → Inventory Reserved → Order Confirmed
↓ (failure)
Release Payment → Cancel OrderTecnologia
35. Quais são as vulnerabilidades de segurança comuns do JWT?
Confusão do algoritmo O invasor muda o RS256 para HS256 e assina com a chave pública. Solução: sempre coloque os algoritmos na lista de permissões.
Algoritmo "nenhum": O invasor tira a assinatura de vez. Correção: rejeitar o algoritmo “nenhum”.
Desenvolvedor backend Perguntas sobre API REST
Essas questões focam nos detalhes de implementação do lado do servidor, otimização de banco de dados e padrões de desempenho que os engenheiros de back-end enfrentam diariamente.
36. O que é o problema da consulta N+1?
O problema N+1 rola quando você pega N registros e depois faz uma consulta separada para cada relação de registro.
# N+1 Problem: 101 queries for 100 users
users = User.query.all()# 1 queryfor user in users:print(user.posts)# 100 queriesTecnologia
Soluções:
Django: Use select_related() para chaves estrangeiras e prefetch_related() para relações muitos-para-muitos.
# 2 queries instead of 101
users = User.objects.prefetch_related('posts').all()Tecnologia
SQLAlchemy: Use joinedload() ou selectinload().
37. Como você configura o pool de conexões?
O pool de conexões reutiliza as conexões do banco de dados em vez de criar novas para cada solicitação.
40. Quais métricas mostram se a API tá funcionando bem?
Você deve ficar de olho nessas quatro métricas importantes pra avaliar a saúde da sua API:
Métrico
Descrição
Limite de alerta
Latência P50
Tempo médio de resposta
Linha de base
Latência P99
1% mais lento
2 segundos por 5 minutos
Taxa de erro
% de 4xx/5xx
1% por 5 minutos
Rendimento
Solicitações por segundo
Planejamento de capacidade
Perguntas sobre API REST para desenvolvedores full stack
Essas perguntas testam sua compreensão sobre questões relacionadas ao cliente e ao servidor, especialmente segurança do navegador, gerenciamento de estado e comunicação entre origens.
41. Quando um navegador manda uma solicitação CORS pré-voo?
Tipo de conteúdo diferente de form-urlencoded, multipart/form-data, text/plain
42. Como você configura o CORS de forma segura?
A configuração segura do CORS precisa incluir explicitamente origens na lista de permissões e lidar com cuidado com as credenciais. Aqui tá uma configuração segura do Express.js:
// Express.js
app.use(cors({origin:['https://yourdomain.com'],// Never use * with credentialscredentials:true,methods:['GET','POST','PUT','DELETE'],allowedHeaders:['Content-Type','Authorization']}));Tecnologia
Nunca use caracteres curinga (*) com credenciais. Nunca permita uma origemnull.
43. Onde você deve guardar os tokens no cliente?
O armazenamento de tokens envolve compromissos de segurança entre vulnerabilidades XSS e CSRF.
Armazenamento
Risco de XSS
CSRFRisco
Recomendação
localStorage
Alto
Nenhum
Evite para tokens
Cookie HttpOnly
Baixo
Precisa de mitigação
Recomendado
Na memória
Baixo
Baixo
Ideal para tokens de acesso
Melhores práticas: Armazenetokens de atualizaçãoem cookies HttpOnly comSameSite=Strict. Mantenha os tokens de acesso na memória.
44. Quando você deve usar WebSockets em vez de SSE?
A escolha depende se você precisa de comunicação bidirecional e como quer lidar com a reconexão:
Recurso
WebSockets
SSE
Direção
Bidirecional
Do servidor para o cliente
Reconexão
Manual
Automático
Dados binários
Sim
Não
Use SSE para notificações, feeds ao vivo e cotações de ações. Use WebSockets para bate-papo, jogos multijogador e edição colaborativa.
45. Como você lida com o envio de arquivos?
Para arquivos grandes, use uploads em partes com acompanhamento do progresso:
asyncfunctionchunkedUpload(file, chunkSize =5*1024*1024){const totalChunks = Math.ceil(file.size / chunkSize);for(let i =0; i < totalChunks; i++){const chunk = file.slice(i * chunkSize,(i +1)* chunkSize);awaituploadChunk(uploadId, i, chunk);}}Tecnologia
Perguntas sobre API REST baseadas em cenários
Essas perguntas avaliam sua capacidade de aplicar os princípios REST a problemas do mundo real. Os entrevistadores querem ver como você faz o seu projeto e como você faz as escolhas arquitetônicas.
46. Crie uma API REST para um sistema de reservas de hotéis
Um sistema de reservas de hotéis precisa lidar com pesquisas, verificações de disponibilidade e reservas, evitando reservas duplicadas. Aqui estão os principais recursos:
Recursos:
/hotels - Lista e pesquisa de hotéis
/hotels/{id}/rooms - Quartos disponíveis
/bookings - Criar e gerenciar reservas
/guests/{id} - Perfis dos hóspedes
Decisões importantes:
Use a paginação com o cursor pra procurar hotéis
Implementar bloqueio otimista para disponibilidade de salas
Retornar 409 Conflito para tentativas de reservas duplicadas
Use chaves idempotentes para processar pagamentos
47. Como você implementaria exclusões temporárias?
Adicione um deleted_atcarimbo de data/hora em vez de remover registros:
48. Como migrar da versão 1 para a versão 2 sem prejudicar os clientes?
Use o padrão Strangler Fig:
Implemente a v2 junto com a v1
Encaminhar novos recursos para a versão 2
Migrar gradualmente os terminais existentes
Comunicar a descontinuação por meio do cabeçalho Sunset
Remova a versão 1 após o período de migração
49. Como você criaria uma API de pesquisa com filtragem complexa?
Para uma pesquisa de produto com vários filtros:
GET /products?q=laptop&category=electronics&price[gte]=500&price[lte]=2000&brand=apple,dell&in_stock=true&sort=-rating&limit=20&cursor=abc123Tecnologia
Decisões de design:
Use o Elasticsearch para fazer buscas de texto completo (os bancos de dados relacionais têm dificuldade com correspondências aproximadas).
Implementar pesquisa facetada para mostrar as opções de filtro disponíveis
Mostra quantos resultados cada filtro dá, pra que os usuários saibam quantos resultados cada filtro produz.
Armazenar combinações de pesquisa populares
50. Como você lida com o controle de versão da API em uma arquitetura de microsserviços?
Opções:
Controle de versão no nível do gateway: O gateway da API direciona /v1/* para os serviços antigos e /v2/*para os novos.
Controle de versão do nível de serviço: Cada serviço cuida da sua própria negociação de versão.
Contratos orientados para o consumidor: Use o Pact ou ferramentas parecidas pra garantir a compatibilidade.
Para a maioria das equipes, o controle de versão no nível do gateway oferece a separação mais clara.
51. Como você implementaria a limitação de taxa para diferentes níveis de usuários?
A solução envolve definir limites específicos para cada camada e verificá-los usando contadores Redis:
Essas perguntas avaliam suas habilidades de comunicação e como você lida com desafios reais relacionados a APIs. Concentre-se em mostrar como você resolve problemas e como trabalha com as pessoas envolvidas.
52. Explique REST para alguém que não entende de tecnologia
Pense numa API REST como um garçom num restaurante. Você (o cliente) não pode entrar diretamente na cozinha. Em vez disso, você diz ao garçom o que quer do cardápio, e ele traz para você. O menu é como a documentação da API, listando o que você pode pedir. O garçom segue regras específicas: você pede algo (GET), faz um novo pedido (POST) ou devolve algo (DELETE). Se a cozinha estiver sem algum item, o garçom avisa você (404 Não encontrado) para que você não fique esperando eternamente.
Essa comparação funciona super bem nas reuniões com as partes interessadas.
53. Conte uma vez em que você otimizou uma API.
Use o método STAR:
Situação: “Nossa API de pesquisa tinha tempos de resposta de 3 segundos durante os picos de tráfego.”
Tarefa: Eu precisava diminuir a latência sem grandes mudanças na arquitetura.
Ação: Adicionei cache Redis para consultas frequentes, implementei paginação baseada em cursor e adicionei índices de banco de dados.
Resultado: O tempo de resposta caiu para 200 ms e a gente conseguiu lidar com 5 vezes mais tráfego.
54. Como você comunica mudanças importantes aos usuários da API?
Anuncie com antecedência: Dê um aviso prévio de pelo menos 6 a 12 meses para mudanças importantes.
Use o cabeçalho Sunset: Sunset: Sat, 31 Dec 2026 23:59:59 GMT
Forneça guias de migração: Documente exatamente o que muda e como se adaptar
Execute as duas versões: Mantenha a versão antiga funcionando durante a transição
Monitorar o uso: Programe-se para ver quais clientes ainda estão usando a versão antiga
55. Que tipo de documentação você faz para APIs?
A documentação essencial inclui:
Especificação OpenAPI/Swagger: Contrato legível por máquina
Guia de introdução: Primeira chamada de API em menos de 5 minutos
Guia de autenticação: Como conseguir e usar credenciais
Referência do erro: Todos os códigos de erro possíveis e como lidar com eles
Changelog: O que mudou em cada versão
Documentação sobre limites de taxa: Limites por nível e como lidar com 429s
56. Quando você NÃO usaria REST?
REST nem sempre é a escolha certa. Saber quando usar alternativas ao mostra maturidade arquitetônica. Já vi equipes forçando o REST em casos de uso em que ele cria mais problemas do que resolve.
Use esta seção como uma consulta rápida quando precisar verificar propriedades do método HTTP, códigos de status ou padrões comuns durante a preparação para entrevistas ou desenvolvimento no mundo real.
Comparação dos métodos HTTP
Essa tabela mostra as principais características de cada método HTTP, prate ajudar aescolher o mais adequado pro seu caso.
Método
Seguro
Idempotente
Armazenável em cache
Uso típico
PEGAR
Sim
Sim
Sim
Recuperar recurso
POST
Não
Não
Condicional
Criar recurso
PUT
Não
Sim
Não
Substitua o recurso
PATCH
Não
Não
Condicional
Atualização parcial
EXCLUIR
Não
Sim
Não
Remover recurso
HEAD
Sim
Sim
Sim
Obter apenas cabeçalhos
OPÇÕES
Sim
Sim
Não
Pré-voo CORS
Referência dos códigos de status
Aqui estão os códigos de status HTTP mais usados, organizados por categoria. Concentre-se em entender quando usar cada um, em vez de decorar todas as especificações.
2xx Sucesso
200 OK: GET, PUT, PATCH bem-sucedidos
201 Criado: POST bem-sucedido (inclui cabeçalho Location)
204 Sem conteúdo: Exclusão bem-sucedida
Erros do cliente 4xx
400 Pedido inválido: Sintaxe mal formada
401 Não autorizado: É preciso autenticar
403 Proibido: Autenticado, mas não autorizado
404 Não encontrado: O recurso não existe.
409 Conflito: Conflito entre estados
422 Entidade não processável: Erro de validação
429 Muitas solicitações: Taxa limitada
Erros do servidor 5xx
Erro interno do servidor 500: Falha genérica do servidor
Até desenvolvedores experientes caem nessas armadilhas. Fica atento a essas armadilhas comuns ao projetar ou implementar APIs REST:
Usando verbos em URLs (por exemplo, /getUsers em vez de /users)
Retornando 200 OK para estados de erro, o que quebra o tratamento de erros do lado do cliente
Confundindo 401 e 403 (Autenticação vs. Autorização)
URLs com aninhamento excessivo além de dois níveis
Armazenando tokens no localStorage (cria vulnerabilidades XSS)
Ignorando a idempotência para solicitações POST
Devolvendo mensagens de erro genéricas sem detalhes úteis
Conclusão
Eu sei que decorar definições não garante que você vai passar em todas as entrevistas técnicas. A verdade é que a engenharia no mundo real muitas vezes exige que a gente quebre as regras “rigorosas” que acabamos de falar, e os entrevistadores se importam mais com o seu raciocínio do que com a sua capacidade de recitar as especificações RFC. Para funções altamente especializadas, um conhecimento profundo da área ou experiência específica em estruturas pode ainda ser o fator decisivo.
Mas dominar esses fundamentos REST é importante, mesmo que você não se depare com essas perguntas específicas. Ele serve como um modelo para entender como a web moderna funciona. Quando te pedirem pra projetar um novo sistema ou resolver um problema de produção, entender a diferença entre um 401 e um 403 (como expliquei antes) vai te ajudar a resolver os problemas mais rápido. Você vai entender exatamente por que padronizar suas interações com a API, e não só escrever código que funcione, é o que define um engenheiro sênior.
Sou engenheiro de dados e criador de comunidades que trabalha com pipelines de dados, nuvem e ferramentas de IA, além de escrever tutoriais práticos e de alto impacto para o DataCamp e desenvolvedores iniciantes.
Perguntas frequentes
Devo decorar as especificações RFC para métodos HTTP?⌄
De jeito nenhum. Os entrevistadores querem ver se você entende as implicações práticas, não se você sabe decorar a documentação. Concentre-se na importância da idempotência quando uma solicitação de rede falha e precisa ser repetida. É isso que diferencia o pensamento dos juniores do dos seniores.
E se me perguntarem sobre SOAP ou XML-RPC em 2026?⌄
Isso rola mais do que você imagina, principalmente em cargos em bancos, saúde ou empresas que trabalham com o governo. O segredo é explicar por que esses protocolos mais antigos ainda existem (contratos rígidos, segurança no nível da mensagem), em vez de descartá-los como obsoletos. Mostre que você entende as vantagens e desvantagens, não só as tendências.
Como posso praticar o design de API sem um projeto real?⌄
Escolha um serviço que você usa todo dia (Spotify, Twitter, o sistema de reservas da sua academia) e pense em como você criaria a API dele. Que pontos finais você criaria? Como você lidaria com a paginação da lista de reprodução de um usuário com 10.000 músicas? Esse exercício mostra rapidinho onde você ainda tem lacunas no seu entendimento.
Os entrevistadores realmente testam o OAuth 2.1 ou o OAuth 2.0 ainda é o que mais rola?⌄
A maioria das empresas ainda usa o OAuth 2.0, mas saber que a versão 2.1 exige PKCE para todos os clientes mostra que você está atualizado com as melhores práticas de segurança. Fale sobre isso como “a direção que a indústria está tomando”, em vez de achar que todo mundo já está nessa onda.
Qual é a coisa que mais atrapalha a maioria dos candidatos?⌄
Não fazer perguntas esclarecedoras durante o projeto do sistema. Quando pedem para “criar uma API”, os candidatos vão direto para os pontos finais sem perguntar sobre escala, requisitos de consistência ou se é interna ou pública. As melhores respostas começam com perguntas, não com soluções.
Saiba quais são as 40 perguntas fundamentais de entrevistas sobre programação em R e suas respostas para todos os níveis de experiência: perguntas de nível básico, intermediário e avançado.
Está se candidatando a um emprego que exige fluência em PostgreSQL? Prepare-se para o processo de entrevista com esta lista abrangente de perguntas sobre o PostgreSQL
Tenha sucesso nas suas entrevistas sobre o Tableau com o nosso guia completo, que cobre perguntas comuns para usuários iniciantes, intermediários e avançados.
Crie APIs robustas e prontas para produção com FastAPI, dominando operações HTTP, validação e execução assíncrona para pipelines eficientes de dados e ML.
As APIs REST são a base da maioria das integrações da internet. Se você está se candidatando a uma vaga de backend, full stack ou engenheiro de software, provavelmente vai ter que responder perguntas sobre design de API REST, métodos HTTP e padrões de autenticação.
Neste guia, vou te mostrar as perguntas que os entrevistadores realmente fazem. Eu organizei por nível de dificuldade e tipo de função, pra você se concentrar no que é mais importante pra posição que você quer. Cada resposta inclui exemplos práticos e, quando for o caso, trechos de código que você pode adaptar.
Uma coisa pra ter em mente: os entrevistadores testam os fundamentos com muito mais frequência do que os tópicos avançados. Se você dominar o básico (métodos HTTP, códigos de status, ausência de estado), vai conseguir lidar com a maioria das entrevistas sobre API REST com confiança. Os padrões arquitetônicos sofisticados vêm depois.
Perguntas básicas sobre REST API em entrevistas
Essas perguntas testam seus conhecimentos básicos. Espere encontrá-las em quase todas as entrevistas, independentemente do nível de senioridade.
1. O que é REST e quais são suas limitações?
REST significa Representational State Transfer (Transferência de Estado Representacional). É um estilo arquitetônico para projetar aplicativos em rede, definido por Roy Fielding em sua tese de doutorado de 2000.
O REST tem seis restrições:
2. Qual é a diferença entre REST e SOAP?
REST é um estilo arquitetônico; SOAP é um protocolo. O REST normalmente usa JSON sobre HTTP e aproveita os métodos HTTP padrão. O SOAP usa só XML e define seu próprio formato de mensagens com envelopes e os aders.
Aspecto
REST
SOAP
Formato
JSON, XML, outros
Apenas XML
Transporte
HTTP
HTTP, SMTP, outros
Armazenamento em cache
Cache HTTP nativo
Não armazenável em cache
Desempenho
Leve
Maiores despesas gerais
O SOAP ainda fazsentido para sistemas empresariais que precisam de contratos formais (WSDL) ou segurança no nível da mensagem (WS-Security).
3. O que são métodos HTTP e quando você usa cada um deles?
Os métodos HTTP definem a ação a ser executada em um recurso.
Método
Objetivo
Exemplo
GETRecuperar um recurso
GET /users/123POSTCrie um novo recurso
POST /usersPUTSubstitua um recurso completamente
PUT /users/123PATCHAtualizar parcialmente um recurso
PATCH /users/123DELETERemover um recurso
DELETE /users/1234. Qual é a diferença entre PUT e POST?
POST cria um novo recurso onde o servidor decide o URI. PUT substitui um recurso em um URI específico que o cliente escolhe.
Se você fizer um PUT para um URI que não existe, o servidor pode criá-lo. Se você fizer um PUT para um URI que já existe, vai substituir todo o recurso.
5. Qual é a diferença entre PUT e PATCH?
PUT substitui todo o recurso. O PATCH faz algumas mudanças.
6. O que significa “sem estado” em REST?
Sem estado significa que cada solicitação precisa ter todas as informações que o servidor precisa para processá-la. O servidor não guarda nenhum contexto do cliente entre as solicitações.
Isso quer dizer que não tem sessões no servidor. Se um usuário estiver autenticado, o cliente precisa mandar as credenciais (normalmente um token) com cada solicitação.
7. O que faz uma API ser RESTful?
Uma API é realmente RESTful quando cumpre todas as restrições REST, incluindo HATEOAS (Hypermedia as the Engine of Application State). Na prática, a maioria das APIs que se autodenominam “REST” são, na verdade, “semelhantes ao REST” ou estão no nível 2 do Modelo de Maturidade de Richardson. E, sinceramente, isso é suficiente para a maioria dos casos de uso.
Níveis do Modelo de Maturidade de Richardson para APIs REST. Imagem do autor.
8. Quais são os códigos de status HTTP básicos que você precisa saber?
Você deve conhecer pelo menos esses sete códigos de status essenciais que cobrem a maioria dos cenários de API:
Código
Nome
Quando usar
200
OK
GET, PUT, PATCH bem-sucedidos
201
Criado
POST bem-sucedido (inclui cabeçalho Location)
204
Sem conteúdo
Exclusão bem-sucedida
400
Pedido inválido
Sintaxe mal formada
404
Não encontrado
O recurso não existe.
500
Erro interno do servidor
Falha no servidor
9. Qual é a diferença entre um recurso e um endpoint?
Um recurso é a entidade de dados (usuário, pedido, produto). Um endpoint é o caminho da URL que dá acesso a esse recurso.
10. Quais são as melhores práticas para o design de URIs?
Use substantivos, não verbos. Mantenha os URIs em letras minúsculas com hífens para nomes com várias palavras. Use substantivos no plural para coleções.
Evite aninhamentos profundos. Em vez de
/users/123/posts/456/comments/789, dá uma olhada em/comments/789ou/comments?post_id=456.11. O que é idempotência e quais métodos HTTP são idempotentes?
Uma operação é idempotente se, ao fazê-la várias vezes, dáo mesmo resultado que fazer uma vez só.
Método
Idempotente
Por que
GETSim
A leitura não altera o estado
PUTSim
Substituir pelos mesmos dados dá o mesmo resultado.
DELETESim
Apagar duas vezes deixa o recurso apagado
POSTNão
Criar duas vezes gera dois recursos
PATCHNão*
Depende da operação
Um PATCH que define um valor éidempotente; um PATCH que incrementa um contador não é.
12. Qual é a diferença entre métodos seguros e idempotentes?
Os métodos seguros não alteram os recursos (GET, HEAD, OPTIONS). Os métodos idempotentes podem ser chamados várias vezes com o mesmo efeito (GET, PUT, DELETE).
Todos os métodos seguros são idempotentes, mas nem todos os métodos idempotentes são seguros. DELETE é idempotente, mas não é seguro porque altera o estado.
13. Quando você deve usar parâmetros de consulta em vez de parâmetros de caminho?
Os parâmetros de caminho identificam um recurso específico. Os parâmetros de consulta filtram, classificam ou paginam coleções.
14. O que é negociação de conteúdo?
A negociação de conteúdo permite que os clientes solicitem diferentes representações de um recurso. O cliente manda um cabeçalho
Accepte o servidor responde com o formato certo.15. Qual é o objetivo do método OPTIONS?
OPTIONS mostra os métodos HTTP que um servidor suporta para uma URL específica. Os navegadores usam isso para solicitações CORS pré-voo, pra ver se as solicitações entre origens são permitidas.
Perguntas intermediárias sobre REST API em entrevistas
Essas perguntas testam a aplicação prática e a tomada de decisões. Espere encontrá-los em cargos de nível médio.
16. Qual é a diferença entre 401 e 403?
Esse é o par de códigos de status que mais confunde a galera. Já vi engenheiros experientes confundirem isso nas revisões de código.
401 Não autorizado
Significa não autenticado. O servidor não sabe quem você é. Sua resposta deve pedir pro usuário fazer login.
403 Proibido
Quer dizer, sem autorização. O servidor sabe quem você é, mas você não tem permissão. Reautenticar não vai ajudar.
Diagrama do fluxograma de decisão de erro de autenticação versus autorização. Imagem do autor.
17. Qual é a diferença entre 400 e 422?
Aqui estão alguns exemplos que mostram a diferença:
400 Pedido inválido
Isso mostra que a sintaxe está errada. O servidor não consegue analisar a solicitação (estrutura JSON inválida, cabeçalhos necessários ausentes).
422 Entidade não processável
Isso mostra que a sintaxe está certa, mas tem erros de semântica. O JSON está certo, mas os dados não passam na validação (formato de e-mail errado, senha muito curta).
18. Quando você deve usar o 409 Conflict?
Use 409 quando a solicitação entrar em conflito com o estado atual do recurso:
19. Como você implementa a paginação?
Duas abordagens principais:
Paginação baseada em deslocamento
Simples, mas tem problemas de desempenho com grandes conjuntos de dados.
Paginação baseada em cursor
Escala melhor e evita o “desvio de página” quando os dados mudam.
Empresas como Stripe, GitHub e Slack usam paginação baseada em cursor para grandes conjuntos de dados.
20. Quais são as estratégias comuns de controle de versão de API?
Existem três abordagens principais, cada uma com diferentes vantagens e desvantagens:
Versões de URI
Esse é o mais comum. É bem claro e fácil de depurar.
Versões do cabeçalho
URLs mais simples, mas mais difíceis de testar nos navegadores.
Versões dos parâmetros de consulta
Fácil de adicionar, mas deixa as URLs confusas.
21. O que é um ETag e como funciona o cache?
Um ETag é um identificador de versão para um recurso. O servidor manda isso nas respostas; o cliente manda de volta nas solicitações seguintes pra ver se o recurso mudou.
22. Quais métodos de autenticação são usados para APIs REST?
Os quatro métodos de autenticação mais comuns são Chaves API, Tokens Portadores, OAuth 2.0 e JWT:
Método
Caso de uso
Prós
Contras
Chaves API
De servidor para servidor
Simples
Sem prazo de validade, fácil de vazar
Fichas ao portador
Autenticação de sessão
Sem nacionalidade
Armazenamento seguro obrigatório
OAuth 2.0
Acesso de terceiros
Autorização delegada
Implementação complexa
JWT
Autenticação sem estado
Autônomo
Não dá pra cancelar sem a lista negra
23. O que é JWT e como funciona?
O JWT (JSON Web Token) tem três partes: Cabeçalho, carga útil e assinatura. Saiba mais sobre como trabalhar com JSON em Python.
O servidor assina o token; os clientes enviam-no com os pedidos. O servidor verifica a assinatura sem precisar consultar o banco de dados.
24. Qual é a diferença entre RS256 e HS256?
HS256 (simétrico): O mesmo secreta, assina e verifica. Risco se vários serviços precisarem verificar tokens.
RS256 (assimétrico): A chave privada assina, a chave pública verifica. Recomendado para sistemas distribuídos onde vários serviços validam tokens.
25. O que é HATEOAS?
HATEOAS (Hypermedia as the Engine of Application State) significa que as respostas incluem links para ações e recursos relacionados.
Na prática, a maioria das APIs não implementa totalmente o HATEOAS. Conheça o conceito, mas não espere implementá-lo na maioria dos trabalhos. Mesmo as grandes empresas de tecnologia raramente criam APIs totalmente compatíveis com HATEOAS.
26. Como você lida com erros de forma consistente?
Use o formato RFC 7807 Problem Details para respostas de erro consistentes:
27. O que é limitação de taxa e por que é importante?
A limitação de taxa protege sua API contra abusos e garante um uso justo. Resposta comum:
28. Como você faz a filtragem e a classificação?
Use parâmetros de consulta com convenções claras:
Perguntas avançadas sobre API REST para entrevistas
Essas perguntas testam o raciocínio arquitetônico. Espere encontrá-los em cargos de chefia.
29. O que mudou entre o OAuth 2.0 e o OAuth 2.1?
O OAuth 2.1 junta as melhores práticas de segurança:
Recurso
OAuth 2.0
OAuth 2.1
PKCE
Opcional
Obrigatório para TODOS os clientes
Concessão implícita
Compatível
Removido
Concessão de senha
Compatível
Removido
URI de redirecionamento
Correspondência flexível
É preciso que a correspondência seja exata
A principal lição: use o fluxo de código de autorização com PKCE para todos os tipos de clientes.
30. Como você implementa a idempotência para pontos finais de pagamento?
Use chaves idempotentes para tornar as solicitações POST seguras para novas tentativas:
O cliente gera um UUID e o envia junto com a solicitação. Se a mesma chave aparecer de novo, manda a resposta que tá guardada no cache.
31. Como você projetaria um limitador de taxa distribuído?
Para sistemas distribuídos, você não pode usar contadores na memória porque o tráfego é balanceado entre as instâncias. Essa é uma armadilha comum que confunde os candidatos.
Arquitetura:
32. Quando você escolheria o gRPC em vez do REST?
A escolha entre gRPC e REST depende dos seus requisitos específicos.
Escolha o gRPC para:
Escolha REST para:
33. Como você lida com operações de longa duração?
Use o padrão de solicitação assíncrona:
O cliente manda uma solicitação
O servidor devolve
202 Acceptedcom uma URL de statusO cliente fica checando o URL de status até terminar.
34. O que é o padrão Saga?
O Saga lida com transações distribuídas entre microsserviços sem bloqueio. Cada serviço faz uma transação local e publica um evento. Se uma etapa falhar, as transações de compensação desfazem as etapas anteriores.
35. Quais são as vulnerabilidades de segurança comuns do JWT?
Confusão do algoritmo O invasor muda o RS256 para HS256 e assina com a chave pública. Solução: sempre coloque os algoritmos na lista de permissões.
Algoritmo "nenhum": O invasor tira a assinatura de vez. Correção: rejeitar o algoritmo “nenhum”.
Desenvolvedor backend Perguntas sobre API REST
Essas questões focam nos detalhes de implementação do lado do servidor, otimização de banco de dados e padrões de desempenho que os engenheiros de back-end enfrentam diariamente.
36. O que é o problema da consulta N+1?
O problema N+1 rola quando você pega N registros e depois faz uma consulta separada para cada relação de registro.
Soluções:
Django: Use
select_related()para chaves estrangeiras eprefetch_related()para relações muitos-para-muitos.SQLAlchemy: Use
joinedload()ouselectinload().37. Como você configura o pool de conexões?
O pool de conexões reutiliza as conexões do banco de dados em vez de criar novas para cada solicitação.
38. Que estratégias de cache você conhece?
Existem três estratégias principais de armazenamento em cache, cada uma otimizada para diferentes padrões de acesso:
Estratégia
Descrição
Caso de uso
Cache-Aside
O aplicativo verifica o cache e, em seguida, o banco de dados.
Pesado na leitura, aguenta bem o tempo.
Gravação direta
Escrever no cache e no banco de dados ao mesmo tempo
Consistência é essencial
Gravação posterior
Gravar no cache, atualização assíncrona do banco de dados
Alta taxa de transferência de gravação
39. Como você implementa a verificação de assinatura do webhook?
A verificação da assinatura do webhook garante que a solicitação realmente veio do remetente esperado. Aqui está uma implementação usando HMAC:
40. Quais métricas mostram se a API tá funcionando bem?
Você deve ficar de olho nessas quatro métricas importantes pra avaliar a saúde da sua API:
Métrico
Descrição
Limite de alerta
Latência P50
Tempo médio de resposta
Linha de base
Latência P99
1% mais lento
2 segundos por 5 minutos
Taxa de erro
% de 4xx/5xx
1% por 5 minutos
Rendimento
Solicitações por segundo
Planejamento de capacidade
Perguntas sobre API REST para desenvolvedores full stack
Essas perguntas testam sua compreensão sobre questões relacionadas ao cliente e ao servidor, especialmente segurança do navegador, gerenciamento de estado e comunicação entre origens.
41. Quando um navegador manda uma solicitação CORS pré-voo?
Os navegadores mandam um OPTIONS pré-voo para:
42. Como você configura o CORS de forma segura?
A configuração segura do CORS precisa incluir explicitamente origens na lista de permissões e lidar com cuidado com as credenciais. Aqui tá uma configuração segura do Express.js:
Nunca use caracteres curinga (
*) com credenciais. Nunca permita uma origemnull.43. Onde você deve guardar os tokens no cliente?
O armazenamento de tokens envolve compromissos de segurança entre vulnerabilidades XSS e CSRF.
Armazenamento
Risco de XSS
CSRF Risco
Recomendação
localStorage
Alto
Nenhum
Evite para tokens
Cookie HttpOnly
Baixo
Precisa de mitigação
Recomendado
Na memória
Baixo
Baixo
Ideal para tokens de acesso
Melhores práticas: Armazenetokens de atualizaçãoem cookies HttpOnly com
SameSite=Strict. Mantenha os tokens de acesso na memória.44. Quando você deve usar WebSockets em vez de SSE?
A escolha depende se você precisa de comunicação bidirecional e como quer lidar com a reconexão:
Recurso
WebSockets
SSE
Direção
Bidirecional
Do servidor para o cliente
Reconexão
Manual
Automático
Dados binários
Sim
Não
Use SSE para notificações, feeds ao vivo e cotações de ações. Use WebSockets para bate-papo, jogos multijogador e edição colaborativa.
45. Como você lida com o envio de arquivos?
Para arquivos grandes, use uploads em partes com acompanhamento do progresso:
Perguntas sobre API REST baseadas em cenários
Essas perguntas avaliam sua capacidade de aplicar os princípios REST a problemas do mundo real. Os entrevistadores querem ver como você faz o seu projeto e como você faz as escolhas arquitetônicas.
46. Crie uma API REST para um sistema de reservas de hotéis
Um sistema de reservas de hotéis precisa lidar com pesquisas, verificações de disponibilidade e reservas, evitando reservas duplicadas. Aqui estão os principais recursos:
Recursos:
/hotels- Lista e pesquisa de hotéis/hotels/{id}/rooms- Quartos disponíveis/bookings- Criar e gerenciar reservas/guests/{id}- Perfis dos hóspedesDecisões importantes:
47. Como você implementaria exclusões temporárias?
Adicione um
deleted_atcarimbo de data/hora em vez de remover registros:48. Como migrar da versão 1 para a versão 2 sem prejudicar os clientes?
Use o padrão Strangler Fig:
49. Como você criaria uma API de pesquisa com filtragem complexa?
Para uma pesquisa de produto com vários filtros:
Decisões de design:
50. Como você lida com o controle de versão da API em uma arquitetura de microsserviços?
Opções:
Controle de versão no nível do gateway: O gateway da API direciona
/v1/*para os serviços antigos e/v2/*para os novos.Controle de versão do nível de serviço: Cada serviço cuida da sua própria negociação de versão.
Contratos orientados para o consumidor: Use o Pact ou ferramentas parecidas pra garantir a compatibilidade.
Para a maioria das equipes, o controle de versão no nível do gateway oferece a separação mais clara.
51. Como você implementaria a limitação de taxa para diferentes níveis de usuários?
A solução envolve definir limites específicos para cada camada e verificá-los usando contadores Redis:
Perguntas sobre API REST comportamental
Essas perguntas avaliam suas habilidades de comunicação e como você lida com desafios reais relacionados a APIs. Concentre-se em mostrar como você resolve problemas e como trabalha com as pessoas envolvidas.
52. Explique REST para alguém que não entende de tecnologia
Pense numa API REST como um garçom num restaurante. Você (o cliente) não pode entrar diretamente na cozinha. Em vez disso, você diz ao garçom o que quer do cardápio, e ele traz para você. O menu é como a documentação da API, listando o que você pode pedir. O garçom segue regras específicas: você pede algo (GET), faz um novo pedido (POST) ou devolve algo (DELETE). Se a cozinha estiver sem algum item, o garçom avisa você (404 Não encontrado) para que você não fique esperando eternamente.
Essa comparação funciona super bem nas reuniões com as partes interessadas.
53. Conte uma vez em que você otimizou uma API.
Use o método STAR:
54. Como você comunica mudanças importantes aos usuários da API?
Anuncie com antecedência: Dê um aviso prévio de pelo menos 6 a 12 meses para mudanças importantes.
Use o cabeçalho Sunset:
Sunset: Sat, 31 Dec 2026 23:59:59 GMTForneça guias de migração: Documente exatamente o que muda e como se adaptar
Execute as duas versões: Mantenha a versão antiga funcionando durante a transição
Monitorar o uso: Programe-se para ver quais clientes ainda estão usando a versão antiga
55. Que tipo de documentação você faz para APIs?
A documentação essencial inclui:
56. Quando você NÃO usaria REST?
REST nem sempre é a escolha certa. Saber quando usar alternativas ao mostra maturidade arquitetônica. Já vi equipes forçando o REST em casos de uso em que ele cria mais problemas do que resolve.
Cenário
Melhor alternativa
Bate-papo ou jogos em tempo real
WebSockets
Serviços internos de alto desempenho
gRPC
Consultas complexas de dados aninhados
GraphQL
Arquiteturas orientadas a eventos
Corretores de mensagens (Kafka, RabbitMQ)
Transmissão bidirecional
gRPC bidirecional ou WebSockets
Referência rápida da API REST
Use esta seção como uma consulta rápida quando precisar verificar propriedades do método HTTP, códigos de status ou padrões comuns durante a preparação para entrevistas ou desenvolvimento no mundo real.
Comparação dos métodos HTTP
Essa tabela mostra as principais características de cada método HTTP, prate ajudar aescolher o mais adequado pro seu caso.
Método
Seguro
Idempotente
Armazenável em cache
Uso típico
PEGAR
Sim
Sim
Sim
Recuperar recurso
POST
Não
Não
Condicional
Criar recurso
PUT
Não
Sim
Não
Substitua o recurso
PATCH
Não
Não
Condicional
Atualização parcial
EXCLUIR
Não
Sim
Não
Remover recurso
HEAD
Sim
Sim
Sim
Obter apenas cabeçalhos
OPÇÕES
Sim
Sim
Não
Pré-voo CORS
Referência dos códigos de status
Aqui estão os códigos de status HTTP mais usados, organizados por categoria. Concentre-se em entender quando usar cada um, em vez de decorar todas as especificações.
2xx Sucesso
Erros do cliente 4xx
Erros do servidor 5xx
Erros comuns a evitar
Até desenvolvedores experientes caem nessas armadilhas. Fica atento a essas armadilhas comuns ao projetar ou implementar APIs REST:
Usando verbos em URLs (por exemplo,
/getUsersem vez de/users)Retornando 200 OK para estados de erro, o que quebra o tratamento de erros do lado do cliente
Confundindo 401 e 403 (Autenticação vs. Autorização)
URLs com aninhamento excessivo além de dois níveis
Armazenando tokens no localStorage (cria vulnerabilidades XSS)
Ignorando a idempotência para solicitações POST
Devolvendo mensagens de erro genéricas sem detalhes úteis
Conclusão
Eu sei que decorar definições não garante que você vai passar em todas as entrevistas técnicas. A verdade é que a engenharia no mundo real muitas vezes exige que a gente quebre as regras “rigorosas” que acabamos de falar, e os entrevistadores se importam mais com o seu raciocínio do que com a sua capacidade de recitar as especificações RFC. Para funções altamente especializadas, um conhecimento profundo da área ou experiência específica em estruturas pode ainda ser o fator decisivo.
Mas dominar esses fundamentos REST é importante, mesmo que você não se depare com essas perguntas específicas. Ele serve como um modelo para entender como a web moderna funciona. Quando te pedirem pra projetar um novo sistema ou resolver um problema de produção, entender a diferença entre um 401 e um 403 (como expliquei antes) vai te ajudar a resolver os problemas mais rápido. Você vai entender exatamente por que padronizar suas interações com a API, e não só escrever código que funcione, é o que define um engenheiro sênior.
Se você quiser se aprofundar na criação desses sistemas, confira nossa Introdução às APIs em Python .