Categorias

Detector de quebra em diff OpenAPI

Compara schemas OpenAPI ou GraphQL, marca breaking changes e gera um relatorio de impacto para equipes de API

Exemplos de resultados

2 Exemplos

Detectar um campo de resposta removido antes do deploy

Compara duas revisoes OpenAPI e sinaliza uma propriedade removida da resposta 200

{
  "releaseRisk": "high",
  "summary": {
    "breakingChanges": 1
  },
  "changes": [
    {
      "path": "GET /users/{id} -> response 200.email",
      "summary": "Response field removed"
    }
  ]
}
Ver parâmetros de entrada
{ "oldSchema": "openapi: 3.0.0\npaths:\n /users/{id}:\n get:\n responses:\n \"200\":\n description: ok\n content:\n application/json:\n schema:\n type: object\n properties:\n id: { type: string }\n email: { type: string }\n", "newSchema": "openapi: 3.0.0\npaths:\n /users/{id}:\n get:\n responses:\n \"200\":\n description: ok\n content:\n application/json:\n schema:\n type: object\n properties:\n id: { type: string }\n", "schemaType": "openapi", "includeImpactAnalysis": true }

Revisar uma mudanca no contrato de entrada GraphQL

Detecta quando um novo campo obrigatorio e adicionado a um objeto de entrada para que as equipes atualizem as mutacoes antes do rollout

{
  "schemaType": "graphql",
  "summary": {
    "totalChanges": 1,
    "breakingChanges": 1,
    "dangerousChanges": 0,
    "nonBreakingChanges": 0
  },
  "impactedAreas": [
    "field"
  ],
  "releaseRisk": "high",
  "changes": [
    {
      "severity": "breaking",
      "area": "field",
      "path": "input:CreatePostInput.category",
      "summary": "Required input field added",
      "impact": "Mutations or queries sending this input object must populate the new required field."
    }
  ]
}
Ver parâmetros de entrada
{ "oldSchema": "input CreatePostInput { title: String! }\ntype Mutation { createPost(input: CreatePostInput!): String! }", "newSchema": "input CreatePostInput { title: String!, category: String! }\ntype Mutation { createPost(input: CreatePostInput!): String! }", "schemaType": "graphql", "includeImpactAnalysis": true }

Fatos principais

Categoria
Development
Tipos de entrada
textarea, select, text, checkbox
Tipo de saída
json
Cobertura de amostras
4
API disponível
Yes

Visão geral

O Detector de quebra em diff OpenAPI é uma ferramenta essencial para equipes de desenvolvimento que precisam comparar schemas OpenAPI ou GraphQL antes de realizar deploys. Ele analisa as versões antiga e nova da sua API, identifica automaticamente alterações que quebram a compatibilidade (breaking changes) e gera um relatório detalhado de impacto, garantindo integrações mais seguras e previsíveis.

Quando usar

  • Antes de aprovar pull requests que alteram contratos de API para evitar quebras em clientes existentes.
  • Durante o planejamento de novas versões de APIs GraphQL ou REST para avaliar o impacto de novos campos obrigatórios.
  • Ao auditar mudanças em documentações OpenAPI/Swagger para garantir que nenhuma rota ou parâmetro foi removido acidentalmente.

Como funciona

  • Cole o schema antigo (OpenAPI YAML/JSON ou GraphQL SDL) no campo 'Schema antigo'.
  • Insira a versão atualizada do contrato no campo 'Novo schema'.
  • Selecione o tipo de schema (OpenAPI ou GraphQL) ou deixe em detecção automática e marque a opção de análise de impacto.
  • A ferramenta processará as diferenças e retornará um relatório JSON destacando o risco da release e as breaking changes encontradas.

Casos de uso

Revisão automatizada de contratos de API para bloquear deploys com breaking changes.
Comunicação clara entre equipes de backend e frontend sobre alterações em endpoints REST ou mutations GraphQL.
Geração de relatórios de impacto técnicos para consumidores de APIs públicas.

Exemplos

1. Prevenção de quebra por remoção de campo na resposta

Desenvolvedor Backend
Contexto
A equipe de backend refatorou o endpoint de listagem de usuários e removeu o campo de email da resposta padrão.
Problema
Garantir que a remoção do campo não passe despercebida e quebre o aplicativo frontend que depende desse dado.
Como usar
Cole o YAML original no 'Schema antigo' e o YAML refatorado no 'Novo schema', selecionando o tipo 'OpenAPI'.
Configuração de exemplo
{"schemaType": "openapi", "includeImpactAnalysis": true}
Resultado
O relatório JSON sinaliza um risco de release 'high' e aponta a remoção do campo 'email' na resposta 200 do endpoint GET /users/{id}.

2. Validação de nova mutation no GraphQL

Arquiteto de API
Contexto
Um novo requisito de negócio exige que a criação de posts inclua uma categoria obrigatória.
Problema
Identificar se a adição do campo 'category' como obrigatório afetará os clientes atuais.
Como usar
Insira o SDL do GraphQL antigo e o novo contendo o input 'CreatePostInput' atualizado.
Configuração de exemplo
{"schemaType": "graphql", "includeImpactAnalysis": true}
Resultado
A ferramenta detecta a adição de um campo de entrada obrigatório e alerta que mutations existentes precisarão ser atualizadas para enviar o novo campo.

Testar com amostras

development

Hubs relacionados

FAQ

Quais formatos de schema a ferramenta suporta?

A ferramenta suporta especificações OpenAPI (Swagger) em YAML ou JSON, além de schemas GraphQL (SDL).

O que é considerado uma 'breaking change'?

Alterações como remoção de rotas, exclusão de campos de resposta, adição de parâmetros obrigatórios ou mudanças de tipo de dados que quebram a integração de clientes atuais.

Posso desativar a análise de impacto?

Sim, você pode desmarcar a opção 'Incluir análise de impacto' se desejar apenas uma lista simples das diferenças estruturais.

A ferramenta detecta mudanças que não quebram a API?

Sim, o relatório JSON também pode resumir alterações seguras (non-breaking changes), como a adição de campos opcionais ou novas rotas.

Como o risco da release é calculado?

O risco é classificado como 'high' (alto) sempre que uma ou mais breaking changes são detectadas, alertando a equipe sobre possíveis falhas em produção.

Documentação da API

Ponto final da solicitação

POST /pt/api/tools/openapi-diff-breach-detector

Parâmetros da solicitação

Nome do parâmetro Tipo Requerido Descrição
oldSchema textarea Sim -
newSchema textarea Sim -
schemaType select Não -
inputFormat text Não -
includeImpactAnalysis checkbox Não -

Formato de resposta

{
  "key": {...},
  "metadata": {
    "key": "value"
  },
  "error": "Error message (optional)",
  "message": "Notification message (optional)"
}
Dados JSON: Dados JSON

Documentação de MCP

Adicione este ferramenta à sua configuração de servidor MCP:

{
  "mcpServers": {
    "elysiatools-openapi-diff-breach-detector": {
      "name": "openapi-diff-breach-detector",
      "description": "Compara schemas OpenAPI ou GraphQL, marca breaking changes e gera um relatorio de impacto para equipes de API",
      "baseUrl": "https://elysiatools.com/mcp/sse?toolId=openapi-diff-breach-detector",
      "command": "",
      "args": [],
      "env": {},
      "isActive": true,
      "type": "sse"
    }
  }
}

Você pode encadear várias ferramentas, ex: `https://elysiatools.com/mcp/sse?toolId=png-to-webp,jpg-to-webp,gif-to-webp`, máx 20 ferramentas.

Se você encontrar algum problema, por favor, entre em contato conosco em [email protected]