Categorías

Detector de rupturas en diff de OpenAPI

Compara schemas OpenAPI o GraphQL, marca cambios incompatibles y genera un informe de impacto para equipos de API

Resultados de ejemplo

2 Ejemplos

Detectar un campo de respuesta eliminado antes del despliegue

Compara dos revisiones de OpenAPI y marca una propiedad que desaparecio de la respuesta 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 un cambio de contrato de entrada GraphQL

Detecta cuando se agrega un nuevo campo obligatorio a un objeto de entrada para actualizar mutaciones antes del lanzamiento

{
  "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 }

Datos clave

Categoría
Development
Tipos de entrada
textarea, select, text, checkbox
Tipo de salida
json
Cobertura de muestras
4
API disponible
Yes

Resumen

Herramienta que compara versiones de esquemas OpenAPI y GraphQL para detectar automáticamente cambios incompatibles antes del despliegue. Analiza diferencias entre la definición anterior y la nueva, clasifica el nivel de riesgo de publicación y genera un informe estructurado con el impacto específico sobre los consumidores de la API.

Cuándo usarlo

  • Antes de desplegar una nueva versión de API para validar que no se eliminen campos de respuesta ni se agreguen parámetros obligatorios sin documentar.
  • Durante revisiones de código en pull requests que modifican contratos de API, para identificar automáticamente rupturas contractuales.
  • Al auditar compatibilidad hacia atrás entre versiones legacy y nuevas especificaciones durante migraciones de formato.

Cómo funciona

  • Pega el contenido del esquema anterior (YAML, JSON o SDL GraphQL) en el campo "Schema anterior" y la versión actualizada en "Schema nuevo".
  • Selecciona el tipo de esquema (OpenAPI, GraphQL o detección automática) y activa la opción de análisis de impacto para obtener detalles de severidad.
  • El motor compara estructuras semánticas, identifica cambios incompatibles como campos eliminados o inputs requeridos nuevos, y calcula el riesgo de liberación.
  • Recibe un informe JSON con el resumen de cambios, áreas impactadas y clasificación de riesgo como alto, medio o bajo.

Casos de uso

Validación en pipelines CI/CD para bloquear despliegues automáticos que contengan cambios incompatibles no intencionales.
Revisiones de contratos entre equipos backend y frontend para documentar modificaciones de interfaz antes de la implementación.
Auditoría de versiones al actualizar APIs públicas para garantizar compatibilidad con integraciones de terceros existentes.

Ejemplos

1. Prevención de breaking change en endpoint de usuarios

Ingeniero de plataforma
Contexto
El equipo eliminó el campo email de la respuesta 200 del endpoint GET /users/{id} sin versionar la API, lo que podría causar errores en aplicaciones móviles existentes.
Problema
Detectar si la eliminación de propiedades en respuestas HTTP constituye un cambio incompatible antes del despliegue a producción.
Cómo usarlo
Pegar el esquema OpenAPI anterior en "Schema anterior", la versión modificada en "Schema nuevo", seleccionar "OpenAPI" como tipo y activar "Incluir análisis de impacto".
Resultado
El informe JSON indica "releaseRisk": "high", identifica el cambio "Response field removed" en la ruta GET /users/{id}, y alerta sobre la ruptura de contrato al eliminar el campo email.

2. Validación de cambios en input GraphQL

Desarrollador backend
Contexto
Se requiere agregar un campo obligatorio "category" al input CreatePostInput en el esquema GraphQL de producción para clasificar nuevas publicaciones.
Problema
Confirmar si agregar un campo requerido a un objeto de entrada GraphQL genera un breaking change para las mutaciones existentes.
Cómo usarlo
Ingresar el SDL GraphQL anterior y el nuevo en los campos de texto correspondientes, seleccionar tipo "GraphQL" y ejecutar la comparación.
Resultado
El resultado clasifica el cambio como "breaking" en el área "field", especificando que las mutaciones deben incluir el nuevo campo category obligatorio para evitar errores de validación.

Probar con muestras

development

Hubs relacionados

Preguntas frecuentes

¿Qué formatos de esquema soporta la herramienta?

OpenAPI (Swagger) 2.0 y 3.0 en YAML o JSON, además de GraphQL Schema Definition Language (SDL).

¿Cómo identifica los cambios incompatibles?

Compara campos de respuesta, parámetros de entrada, tipos y requisitos de obligatoriedad entre ambas versiones para detectar eliminaciones o nuevas restricciones.

¿Qué significa el "riesgo de publicación" en el resultado?

Indica la probabilidad de que los cambios generen errores en clientes existentes: "high" cuando existen cambios breaking confirmados que rompen la compatibilidad.

¿Es posible comparar sin especificar el tipo de esquema?

Sí, seleccionando "Auto detect" el sistema identifica automáticamente si el contenido corresponde a OpenAPI o GraphQL.

¿El informe detalla el impacto específico por cambio?

Sí, cuando se activa el análisis de impacto, cada cambio incompatible incluye una descripción del efecto sobre consumidores, como mutaciones que requieren nuevos campos obligatorios.

Documentación de la API

Punto final de la solicitud

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

Parámetros de la solicitud

Nombre del parámetro Tipo Requerido Descripción
oldSchema textarea -
newSchema textarea -
schemaType select No -
inputFormat text No -
includeImpactAnalysis checkbox No -

Formato de respuesta

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

Documentación de MCP

Agregue este herramienta a su configuración de servidor MCP:

{
  "mcpServers": {
    "elysiatools-openapi-diff-breach-detector": {
      "name": "openapi-diff-breach-detector",
      "description": "Compara schemas OpenAPI o GraphQL, marca cambios incompatibles y genera un informe de impacto para equipos de API",
      "baseUrl": "https://elysiatools.com/mcp/sse?toolId=openapi-diff-breach-detector",
      "command": "",
      "args": [],
      "env": {},
      "isActive": true,
      "type": "sse"
    }
  }
}

Puede encadenar múltiples herramientas, por ejemplo: `https://elysiatools.com/mcp/sse?toolId=png-to-webp,jpg-to-webp,gif-to-webp`, máximo 20 herramientas.

Si encuentra algún problema, por favor, póngase en contacto con nosotros en [email protected]