Primeiro cheque se precisa mesmo quebrar: adicionar campos e aceitar parâmetros opcionais é retrocompatível se os clientes ignoram campos desconhecidos. Se realmente quebra, versione explicitamente, normalmente com um prefixo no path para versões maiores, rode as duas versões lado a lado sobre um único modelo interno, publique um cronograma de descontinuação com headers e métricas por versão, e só remova a antiga quando o tráfego para ela for praticamente zero.
Por que os entrevistadores perguntam isso
Esta é uma pergunta de julgamento sobre retrocompatibilidade e disciplina operacional. O entrevistador quer ouvir que você evita mudanças que quebram sempre que possível, que sabe dizer o que conta como quebra, e que já aposentou um endpoint de verdade, o que exige saber quem chama aquilo. Respostas que param em colocar v2 na URL perdem a parte difícil, que é a migração e a remoção.
Como estruturar sua resposta
- Separe mudanças aditivas das que realmente quebram.
- Escolha um mecanismo de versionamento e justifique brevemente.
- Descreva como as duas versões coexistem sem duplicar lógica.
- Exponha o processo de descontinuação e remoção com dados.
Exemplo de resposta
Meu primeiro movimento é checar se aquilo precisa quebrar. Adicionar um campo, adicionar um parâmetro opcional, adicionar um valor de enum se os clientes toleram desconhecidos, tudo isso vai para produção sem subir versão. Quebrar significa remover ou renomear um campo, apertar a validação ou mudar o significado de um valor existente. Quando realmente quebra, eu uso uma versão maior no path, porque fica visível nos logs e é fácil para os clientes raciocinarem sobre, e mantenho a versão antiga como uma camada fina de tradução sobre o mesmo modelo interno, para não manter duas implementações. Depois vem a parte que realmente toma tempo: instrumentar requisições por versão e por cliente, publicar uma data de encerramento num header de resposta e na documentação, e falar diretamente com quem mais chama. Na última que conduzi, o tráfego da v1 caiu para um punhado de requisições por dia vindas de duas integrações, entramos em contato, e três meses depois deu para remover com segurança. Sem métricas por cliente você nunca consegue apagar nada.
Vai encarar essa entrevista em breve? O GhostPilot escuta a sua chamada ao vivo, identifica a pergunta no instante em que ela é feita e coloca uma resposta estruturada na sua tela em tempo real. Teste na sua próxima entrevista simulada ou pegue um Session Pass de $29, sem assinatura, para a hora da verdade.
Veja como funcionaPerguntas de acompanhamento que você pode esperar
- Quais mudanças você considera seguras sem subir versão?
- Como você versiona eventos ou payloads de mensagens em vez de HTTP?
- O que você faz com um cliente grande que se recusa a migrar?
Mais perguntas para Desenvolvedor Backend
Seu entrevistador vai fazer a própria versão desta. Cole a descrição real da vaga no Question Predictor gratuito e receba as 20 perguntas que essa vaga tem mais chance de fazer, com o que cada uma está de fato sondando.
Prever minhas perguntas