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 navegadorOs 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.
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.
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.
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.
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.
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.
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.