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:
- Copie o trecho de log da última versão conhecida como boa.
- Copie o trecho com falha para a mesma operação.
- Faça diff localmente.
- 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
curlantes 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
400vs422)
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 entrada | Ferramenta melhor |
|---|---|
| Saída bruta de curl com headers | Diff de texto |
| Objeto JSON formatado | Diff JSON |
| Linha de log com JSON embutido | Diff de texto primeiro |
Precisa de caminho como items[0].plan | Diff 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.