Nesta página
Para descobrir o que mudou em uma resposta JSON de uma API, guarde uma captura anterior e outra nova do mesmo caso, confira se ambas são JSON válido e compare seus valores. Revise os caminhos marcados como inclusões, remoções ou alterações à luz do contrato da API. O comparador mostra diferenças entre essas duas amostras; decidir se alguma é uma regressão exige conhecer o comportamento esperado.
1. Prepare duas capturas comparáveis
Use o mesmo endpoint, método, parâmetros e contexto de dados antes e depois da mudança. Comparar pedidos diferentes pode mostrar diferenças causadas pelos dados, não pela implantação. Guarde também o código de status HTTP e o contexto necessário para interpretar a resposta: o diff examina os corpos JSON que você cola nele.
Substitua tokens, dados pessoais e outros segredos antes de copiar uma resposta para qualquer ferramenta. IDs gerados e marcas de tempo podem mudar entre requisições e ainda assim ser esperados. Se aparecerem, revise-os separadamente; o JSON Diff não os ignora automaticamente.
As duas capturas devem ser JSON estrito. Se alguma contiver comentários, vírgulas finais ou um erro de sintaxe, corrija-a e confira-a com o validador JSON antes de interpretar diferenças.
2. Compare o antes e o depois
Estas são duas capturas fictícias do mesmo pedido A-17. Antes:
{
"pedido": { "id": "A-17", "estado": "pendente" },
"linhas": [{ "sku": "CU-1", "quantidade": 1 }]
}
Depois:
{
"linhas": [{ "sku": "CU-1", "quantidade": 2 }],
"pedido": { "estado": "pago", "id": "A-17" },
"entrega": null
}
Cole a primeira captura em JSON anterior e a segunda em JSON novo no comparador JSON. Selecione Comparar e leia o resumo e os caminhos. A mudança na ordem das chaves do objeto não acrescenta uma diferença.
| Caminho | Tipo | Antes → depois | O que conferir |
|---|---|---|---|
$.pedido.estado |
Alteração | "pendente" → "pago" |
Esse estado era esperado para o pedido? |
$.linhas[0].quantidade |
Alteração | 1 → 2 |
Essa quantidade era esperada para a mesma linha? |
$.entrega |
Inclusão | Ausente → null |
O que a nova propriedade significa para os clientes? |
O resumo é 1 inclusão, 0 remoções e 2 alterações: 3 diferenças no total. Uma remoção indicaria uma propriedade ou um item anterior que deixou de aparecer. entrega é uma inclusão mesmo com valor null: antes a propriedade não existia. O array linhas é comparado por posição; [0] indica seu primeiro item.
Se uma inserção em um array gerar várias alterações ou você tiver dúvidas entre um campo ausente e null, veja como interpretar um diff JSON.
3. Decida o que precisa de investigação
Confira cada caminho no contrato e nos testes da API. O estado pago pode ser intencional; a quantidade que passou de 1 para 2 pede a revisão dos dados de entrada e das regras do pedido. Para entrega, verifique se os clientes distinguem uma propriedade ausente de outra presente com null. A inclusão de uma propriedade, por si só, não comprova compatibilidade nem quebra de contrato.
Se confirmar uma regressão, documente o caso e crie ou ajuste uma asserção nos testes da API. Se o comparador não mostrar diferenças, você sabe apenas que esses dois corpos JSON foram considerados iguais por valor. Isso não prova que outras requisições, cabeçalhos ou operações da API se comportem da mesma forma.