Lição 5

Comparar logs e respostas de API

Encontre regressões em trechos de log, saída de curl e corpos de resposta sem abrir diff completo na IDE.

Logs e respostas de API costumam chegar como texto copiado, não como arquivos versionados. Diff de texto é ideal para essas checagens rápidas antes/depois.

Comparação de trechos de log

Casos úteis:

  • Stack traces de erro antes e depois de um deploy
  • Logs de request/response em torno de endpoint com falha
  • Saída de job worker em duas execuções
  • Linhas de log filtradas copiadas de um dashboard

Fluxo:

  1. Copie o trecho de log da última versão conhecida como boa.
  2. Copie o trecho com falha para a mesma operação.
  3. Faça diff localmente.
  4. Foque na primeira linha alterada, não no bloco inteiro ruidoso.

Logs costumam ter timestamps, request IDs e trace IDs que mudam a cada execução. Ignore esses campos mentalmente ou corte-os antes do diff quando possível.

Comparação de resposta de API

Casos úteis:

  • Saída de curl antes e depois de mudança no backend
  • Resposta transformada pelo gateway vs resposta upstream
  • Mudanças na forma de página paginada
  • Mudanças em payload de erro (corpo 400 vs 422)

Exemplo:

{"status":"ok","items":[{"id":1,"name":"Ada"}]}
{"status":"ok","items":[{"id":1,"name":"Ada","plan":"pro"}]}

Se o payload é JSON válido e você se importa com estrutura em nível de campo, diff JSON pode ser melhor. Se o corpo é parcial, minificado, escapado ou misturado com headers, diff de texto costuma ser mais rápido.

Diff de texto vs diff JSON para respostas

Forma da entradaFerramenta melhor
Saída bruta de curl com headersDiff de texto
Objeto JSON formatadoDiff JSON
Linha de log com JSON embutidoDiff de texto primeiro
Precisa de caminho como items[0].planDiff JSON

Conclusão

Para logs e respostas copiadas, diff de texto ajuda a achar a primeira mudança significativa rápido. Corte ruído, compare a menor amostra útil e só então escale para diff JSON quando a estrutura importa.

Experimente ambos os lados no Comparador de Diff de Texto com uma amostra curta antes de comparar payloads completos.

Voltar à visão geral do curso