Comparador OpenAPI e revisão de mudanças

Cole as definições anterior e nova para gerar o relatório. Confirme o impacto nos clientes com testes de contrato; referências externas não são buscadas.

Funciona localmente no seu navegador
As definições de API permanecem neste navegador. O VoriTools não envia, busca nem executa nenhuma especificação.
Earlier specification
Updated specification
Resumo de compatibilidade

Os rótulos de breaking change destacam operações ou respostas removidas e entradas que passam a ser obrigatórias. Alterações de esquema são marcadas para revisão porque a compatibilidade depende dos clientes.

Change report
  • Compare two specifications to review compatibility changes.

Review API contracts before release

Use este diff para uma revisão rápida do contrato e confirme o impacto nos consumidores em testes de API versionados. O verificador local não resolve referências externas nem arquivos remotos.

Como comparar duas especificações OpenAPI

Cole a especificação publicada em “Earlier specification” e a proposta em “Updated specification”, depois clique no botão de comparação. As duas caixas aceitam JSON ou YAML, e os dois documentos ficam no navegador: nada é enviado, baixado ou executado.

O resultado é um relatório de revisão agrupado por gravidade, com um JSON Pointer em cada entrada, para que cada achado possa ser rastreado até o ponto exato do documento novo.

  1. Cole a definição publicada em “Earlier specification”, ou clique em Carregar exemplo para ver um par preenchido.
  2. Cole a definição proposta em “Updated specification”.
  3. Clique no botão de comparação. O cabeçalho mostra quantas operações cada documento define, quantas mudanças quebradas foram encontradas e quantos pontos precisam de revisão.
  4. Clique em Copiar relatório para levar os achados como texto, uma linha por entrada. Limpar esvazia as duas caixas e desativa o botão de cópia novamente.

O que a comparação cobre

Mudanças informadas como quebradas

Operação removida, parâmetro obrigatório removido, parâmetro opcional que passou a obrigatório, parâmetro novo obrigatório e corpo de requisição que agora é obrigatório aparecem como DANGER. Também aparecem um código de resposta removido e um tipo de conteúdo de requisição removido, porque clientes existentes podem depender deles.

Mudanças marcadas para revisão

Alterações de schema aparecem como WARNING, não como DANGER, porque quebrar ou não um cliente depende do cliente: schemas de parâmetro, de requisição e de resposta alterados, schemas de componente removidos ou editados, e parâmetros opcionais removidos. Editar um componente compartilhado é informado em /components/schemas/<nome>, que é onde uma definição gerada costuma carregar sua mudança quebrada.

Na comparação de schemas, as palavras-chave required, enum, type, allOf, anyOf e oneOf são tratadas como conjuntos, então um documento regenerado que apenas as reordena não é informado como mudança.

Como os dois documentos são emparelhados

As operações são emparelhadas por método e caminho. Por isso um parâmetro de caminho renomeado aparece como uma operação removida mais uma operação adicionada, e não como uma única edição. Referências internas do próprio documento (#/components/...) são resolvidas antes da comparação; referências externas e remotas não são baixadas, então um parâmetro ou schema que só existe em outro arquivo é comparado como está escrito.

Documentos Swagger 2.0 são comparados do mesmo modo, porque caminhos, operações, parâmetros e respostas são lidos da mesma forma. Servers, requisitos de segurança, tags, descrições e exemplos não são comparados.

Como ler e copiar o relatório

Cada entrada traz a gravidade (DANGER, WARNING, INFO ou GOOD), o JSON Pointer do elemento afetado e uma frase descrevendo a mudança. Em um pointer, ~1 representa uma barra dentro de um caminho, então /paths/~1users/get é GET /users.

Uma caixa vazia é informada como tal, e um documento que não é JSON ou YAML válido é recusado indicando a linha que falhou, então uma colagem quebrada nunca parece uma comparação limpa.

Ferramentas recentes: