Revise alterações de API com JSON Diff

Compare dois documentos JSON para identificar adições, exclusões e edições — ideal para regressão de API.

Após a atualização da API de v1 para v2: quais campos são novos na resposta JSON? Há alguma alteração significativa? Com 500 linhas de resposta e comparação linha por linha, é fácil perder alterações profundas em objetos aninhados.

Voltado para engenheiros de front-end, back-end e testes, este artigo explica os princípios do JSON Diff, casos de uso, um fluxo de trabalho de 5 etapas e armadilhas como ordem de array e precisão de ponto flutuante. Você pode então usar a função diff do JSON Toolbox para realizar uma auditoria completa de alteração da API localmente no navegador - sem fazer upload.

Por que JSON Diff é obrigatório após atualizações de API

Em microsserviços e separação front-end/backend, o contrato de API é a base para a colaboração. Uma atualização aparentemente “compatível com versões anteriores” pode remover campos silenciosamente, alterar estruturas de array ou converter strings em números – os clientes só percebem isso na produção.

Da vida cotidiana: uma API de lista de usuários v2 alterou pagination.total de número para string - clientes móveis antigos travavam com uma tela branca. Se você tivesse comparado as respostas de amostra v1/v2 com JSON Diff antes do lançamento, a mudança de tipo teria sido marcada em segundos.

O que é diferença JSON

JSON Diff compara dois documentos JSON de maneira estruturada e destaca campos adicionados, removidos e modificados. Ao contrário do Text-Diff, ele entende a hierarquia JSON e ignora diferenças puras de recuo/quebra de linha.

Diferença principal para comparação de texto

Dimensão de comparaçãoDiferença JSONDiferença de texto (por exemplo, git diff)
Compreendendo a estrutura JSON✅ Comparação por caminho de campo❌ Comparação de linhas
Ignorar espaços em branco✅ Por estrutura⚠️ Outra formatação = ruído
Campos aninhados✅ Caminho como $.user.email⚠️ Pesquise hierarquia manualmente
Revisão da API✅ Recomendado⚠️ Formatação necessária primeiro

Leia os resultados das diferenças

  • Verde/adicionado: Campo somente no JSON certo
  • Vermelho/excluído: Campo somente no JSON esquerdo
  • Amarelo/alterado: mesmo caminho, valor diferente
  • Sem ênfase: estrutura idêntica

Para quem JSON Diff é adequado

papelCenário típicoPara usar
Front-endresposta simulada vs real da API ao depurarCampos ausentes ou alterações de tipo antecipadas
Back-endResposta antes/depois da versão da APIChangelog, menos lançamentos recentes
testelinha de base vs. resposta atual na regressãoIdentifique erros de declaração mais rapidamente
DevOps/SREConfiguração antes/depois da implantação (por exemplo, K8s ConfigMap JSON)Confirme o conteúdo do lançamento

Casos de uso típicos

  • Regressão da versão da API: estrutura de resposta v1 vs. v2
  • Auditoria de configuração: JSON antes e depois da implantação
  • ETL/Migração: Saída de Script vs. Expectativa
  • Revisão de código: analisando rapidamente grandes equipamentos JSON

Prática: 5 etapas para revisão de alterações de API

Fluxo de trabalho com a ferramenta JSON Toolbox Diff — localmente no navegador, também para exemplos internos (token, remova senhas previamente).

  1. Salve a resposta antiga: exemplo da v1 ou documentação como base.json
  2. Obtenha nova resposta: API v2 ou dados simulados atualizados
  3. Formatação opcional: Formate bem ambos os lados, evitando ruído de espaço em branco
  4. Execute diff: insira ambos JSONs à esquerda/direita, “Iniciar comparação”
  5. Documentar diferenças: Verifique os pontos marcados no CHANGELOG ou testes

Exemplo: duas respostas da API do usuário

JSON A (v1, antigo):

{
  "name": "Alice",
  "age": 30,
  "tags": ["dev", "json"],
  "profile": {
    "city": "Shanghai",
    "level": "senior"
  }
}

JSON B (v2, novo):

{
  "name": "Alice",
  "age": 31,
  "tags": ["dev", "tools"],
  "active": true,
  "profile": {
    "city": "Beijing",
    "level": "senior"
  }
}

As diferenças: idade 30 → 31; conteúdo das tags alterado; profile.city Xangai → Pequim; ativo novo. Se isso estiver faltando na nota de lançamento, há risco de problemas de compatibilidade do cliente.

Dicas e armadilhas típicas

Formate primeiro e depois compare

Uma página reduzida, a outra com múltiplas linhas - a diferença de texto cria ruído. Formate ambos e considere apenas as alterações semânticas.

Ordem da matriz ≠ mudança de conteúdo

Mesmo conteúdo, ordem diferente – JSON Diff pode mostrar muitas alterações. Esclareça o negócio: a matriz está ordenada (linha do tempo) ou apenas um conjunto?

Ponto flutuante e tipos

  • 1,0 vs. 1.000 pode contar como uma mudança – normalize se necessário
  • A sequência "123" vs. número 123 – tipos diferentes, muitas vezes alterações significativas
  • campo nulo vs. campo ausente - semântica diferente, diff separa ambos

Remover dados confidenciais

Antes de comparar, substitua access_token, senha, IDs por espaços reservados (por exemplo, "***"). O JSON Toolbox é executado puramente no frontend – a remoção continua sendo uma boa prática.

JSON Diff comparado a outros métodos

métodovelocidadeReconhecer caminhos de campoGrande JSONEsforço de aprendizagem
Ferramenta de comparação JSONRápido (segundos)✅✅ RecomendadoPequena quantidade
Comparação manualLento, irregular❌❌ Pesado de aproximadamente 100 linhasPequena quantidade
git diff (texto)Rápido⚠️ Após a formatação⚠️ Muito barulhoPequena quantidade
Teste automatizadoAutomaticamente no CI✅✅Médio (escrita de testes)
Esquema JSONRápido✅ Estrutura apenas✅Meios (manter esquema)

Prática recomendada: No Dev JSON Diff para revisões rápidas → diferenças importantes em testes automatizados → antes dos principais lançamentos do esquema JSON para estrutura. Complementam-se, não se substituem.

Perguntas frequentes (FAQ)

O JSON Diff reconhece a ordem do array?

Sim. As alterações no pedido são marcadas como modificações. Para matrizes não ordenadas, avalie manualmente se são funcionalmente relevantes.

O que a diferença mostra para JSONs idênticos?

Nota “Ambos os JSONs são idênticos” – sem destaque.

Qual o tamanho dos arquivos que o JSON Diff suporta?

Localmente no navegador. Acima de 2 MB pode falhar, acima de 10 MB pode dividir ou CLI (jq, jsondiffpatch).

Os dados são enviados para um servidor?

Não. Arquitetura de front-end pura – diferencie completamente no navegador, mesmo para exemplos de API internos.

Você pode exportar resultados diferentes?

Atualmente destacado na página. Para arquivo: Copie a captura de tela ou diferenças para CHANGELOG.

Diferença JSON Diff vs. esquema JSON?

Diff compara dois JSONs entre si; O esquema verifica a estrutura predefinida. Combine ambos antes do lançamento.

Conclusão e próximos passos

Após uma atualização de API, migração de configuração ou sincronização de dados, JSON Diff é um dos meios mais eficientes contra alterações significativas “silenciosas”. Pontos-chave: formato → verifique as marcações coloridas → registre no changelog ou testes.

Frontend/Teste: Salve a linha de base durante a depuração, imediatamente após a atualização do Diff. Back-end: requer captura de tela diff v1/v2 como porta de lançamento em modelos de PR.