search

Found

info Visão geral

Aplica um JSON Patch RFC 6902 (add, remove, replace, move, copy, test) a um documento alvo e mostra o JSON resultante e o rastreio operação por operação.

📘 Como usar

  1. Cole o documento JSON alvo no campo da esquerda
  2. Cole o vetor de operações RFC 6902 no campo da direita
  3. Confira o status, o JSON modificado e o rastreio por operação

Avaliador de JSON Patch (RFC 6902)

O documento JSON ao qual o patch será aplicado.

Operações RFC 6902 como vetor (ex. [{"op":"add","path":"/x","value":1}]).

Status
 
Copiado!

    ※ Aplica as operações RFC 6902 em ordem, resolvendo caminhos com a sintaxe JSON Pointer (RFC 6901).

    ※ Se alguma operação falhar, o patch inteiro é considerado falho e o documento original é retornado.

    Article

    Avaliador de JSON Patch (RFC 6902)|Aplique as 6 operações e veja o resultado

    Execute um JSON Patch sobre um documento direto no navegador, sem servidor. As seis operações padrão — add, remove, replace, move, copy e test — são aplicadas em ordem, e você recebe o JSON modificado junto com um rastreio legível do que cada operação fez. Se uma única operação falhar, todo o patch falha e o documento original é devolvido, exatamente como o RFC 6902 exige.

    💡 Sobre esta ferramenta

    Ao projetar ou revisar um endpoint PATCH, uma pergunta volta sempre: "se eu enviar este vetor de operações, como fica o documento depois?". Subir a API real, montar a requisição e ler a resposta é um ciclo lento, sobretudo quando a diferença entre move e copy, o resultado de um test ou o comportamento do token de acréscimo - ainda não estão claros.

    Esta ferramenta reduz esse ciclo a duas caixas de texto. Cole um documento alvo e um vetor de operações: cada caminho é resolvido com a sintaxe JSON Pointer (RFC 6901) e as operações são aplicadas conforme a especificação. Quando algo falha, ela informa qual operação falhou (por exemplo op[2]) e por quê: caminho inexistente, índice do vetor fora do intervalo, valor de test que não coincide ou operação desconhecida. É voltada a desenvolvedores back-end, revisores de OpenAPI e quem usa kubectl patch --type=json e quer reproduzir o comportamento da especificação sem acionar um servidor real.

    🧐 Perguntas frequentes

    Q. Qual a diferença entre JSON Patch (RFC 6902) e JSON Merge Patch (RFC 7396)? R. JSON Patch é um vetor de operações explícitas (add, remove, replace, move, copy, test) aplicadas em ordem. O Merge Patch envia um documento parcial com o estado final desejado e usa null para apagar chaves; não tem move, copy nem test. Use JSON Patch quando precisar manipular vetores com precisão ou verificar uma pré-condição.

    Q. Para que serve a operação test? R. É uma guarda que confirma se o valor em um caminho é o esperado antes de qualquer mutação. Colocar test /version == 15 no início faz o restante do patch ser aplicado só se o documento ainda estiver no estado que você supôs: uma forma de concorrência otimista para não sobrescrever a alteração de outra pessoa.

    Q. O que acontece se uma operação falhar? R. O RFC 6902 trata o patch de forma atômica. Assim que uma operação falha, o patch inteiro é considerado falho e a ferramenta devolve o documento alvo original intacto. Não há aplicação parcial.

    Q. O que significa o - em /user/tags/-? R. É o token especial de JSON Pointer que indica "o fim do vetor". Com add, o - acrescenta ao final; um índice numérico insere naquela posição.

    Q. Como referencio uma chave que contém uma barra ou um til? R. Use o escape do RFC 6901: dentro de uma chave, escreva / como ~1 e ~ como ~0. Assim, uma chave chamada literalmente a/b é endereçada como /a~1b.

    📚 Por que o JSON Patch combina tão bem com o PATCH do REST

    O verbo PATCH do REST significa "atualização parcial", mas o próprio HTTP não define o formato do corpo. Carregar um JSON Patch nesse corpo permite descrever a mudança como uma sequência de operações em vez de reenviar o documento inteiro. Comparado ao PUT, a carga é pequena, e combinar as mutações com uma operação test evita sobrescrever em silêncio um campo que alguém alterou depois da sua leitura. O vetor de operações também serve como registro de auditoria legível: fica claro quem mudou qual caminho e como. Ferramentas como kubectl patch --type=json aceitam esse mesmo formato RFC 6902. Na prática, o caminho mais rápido para assimilar a diferença entre move e copy, ou para sentir como o test interrompe um patch, é alinhar algumas operações e observar o resultado em vez de reler a especificação.