Catégories

Detecteur de rupture OpenAPI diff

Compare des schemas OpenAPI ou GraphQL, signale les breaking changes et genere un rapport dimpact pour les equipes API

Exemples de résultats

2 Exemples

Detecter un champ de reponse supprime avant la mise en production

Compare deux revisions OpenAPI et signale une propriete retiree de la reponse 200

{
  "releaseRisk": "high",
  "summary": {
    "breakingChanges": 1
  },
  "changes": [
    {
      "path": "GET /users/{id} -> response 200.email",
      "summary": "Response field removed"
    }
  ]
}
Voir paramètres d'entrée
{ "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 }

Examiner un changement de contrat dentree GraphQL

Detecte l ajout d un nouveau champ obligatoire dans un objet d entree afin que les equipes mettent a jour leurs mutations

{
  "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."
    }
  ]
}
Voir paramètres d'entrée
{ "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 }

Points clés

Catégorie
Development
Types d’entrée
textarea, select, text, checkbox
Type de sortie
json
Couverture des échantillons
4
API disponible
Yes

Vue d’ensemble

Ce détecteur de rupture OpenAPI et GraphQL compare deux versions de vos schémas d'API pour identifier instantanément les changements incompatibles (breaking changes). Conçu pour les équipes de développement, il analyse vos spécifications, signale les champs supprimés ou les nouveaux paramètres obligatoires, et génère un rapport d'impact détaillé pour sécuriser vos mises en production.

Quand l’utiliser

  • Avant de fusionner une pull request modifiant le contrat d'une API publique ou interne.
  • Lors de la mise à jour de la documentation OpenAPI pour s'assurer qu'aucune régression n'a été introduite.
  • Pour auditer l'évolution d'un schéma GraphQL et prévenir les équipes clientes des changements à venir.

Comment ça marche

  • Collez la version précédente de votre schéma OpenAPI (YAML/JSON) ou GraphQL SDL dans le champ 'Schéma précédent'.
  • Insérez la nouvelle version mise à jour dans le champ 'Nouveau schéma'.
  • Sélectionnez le type de schéma (OpenAPI ou GraphQL) et activez l'analyse d'impact si nécessaire.
  • L'outil compare les deux contrats et génère un rapport JSON listant les ruptures de compatibilité et le niveau de risque.

Cas d’usage

Vérification manuelle rapide des contrats d'API avant d'automatiser les tests de non-régression dans une pipeline CI/CD.
Validation par les architectes logiciels des modifications apportées aux endpoints critiques lors des revues de code.
Génération d'un rapport clair pour informer les développeurs front-end ou mobiles des ajustements nécessaires côté client.

Exemples

1. Détecter un champ de réponse supprimé avant la mise en production

Développeur Backend
Contexte
L'équipe a refactorisé un endpoint utilisateur et modifié la structure de la base de données.
Problème
S'assurer qu'aucun champ utilisé par le front-end n'a été accidentellement retiré de la réponse de l'API.
Comment l’utiliser
Collez l'ancien YAML OpenAPI et le nouveau YAML, puis lancez l'analyse avec l'option d'impact activée.
Configuration d’exemple
Type de schéma : OpenAPI, Inclure l'analyse d'impact : Oui
Résultat
Le rapport JSON signale un risque 'high' et identifie précisément la suppression du champ 'email' dans la réponse 200 de 'GET /users/{id}'.

2. Examiner un changement de contrat d'entrée GraphQL

Architecte API
Contexte
Une nouvelle fonctionnalité nécessite d'ajouter une catégorie lors de la création d'un article via GraphQL.
Problème
Vérifier si l'ajout de ce nouveau champ d'entrée va casser les mutations existantes des clients.
Comment l’utiliser
Insérez l'ancien SDL GraphQL et le nouveau SDL contenant le champ 'category: String!'.
Configuration d’exemple
Type de schéma : GraphQL, Inclure l'analyse d'impact : Oui
Résultat
L'outil détecte un 'breaking change' car un champ obligatoire a été ajouté, avertissant que les clients doivent mettre à jour leurs requêtes.

Tester avec des échantillons

development

Hubs associés

FAQ

Quels formats de schémas sont supportés ?

L'outil prend en charge les spécifications OpenAPI (Swagger) au format YAML ou JSON, ainsi que les schémas GraphQL (SDL).

Qu'est-ce qu'un 'breaking change' (changement incompatible) ?

Il s'agit d'une modification qui risque de casser le code des clients existants, comme la suppression d'un champ de réponse ou l'ajout d'un paramètre requis.

L'outil peut-il détecter le type de schéma automatiquement ?

Oui, en laissant l'option 'Type de schéma' sur 'Auto detect', l'outil identifiera automatiquement s'il s'agit d'OpenAPI ou de GraphQL.

Que contient le rapport d'impact ?

Le rapport JSON inclut le niveau de risque global, un résumé des modifications, et le détail de chaque changement avec son chemin exact et son impact sur les clients.

Mes schémas d'API sont-ils stockés ?

Non, l'analyse est effectuée localement ou à la volée. Vos contrats d'API ne sont pas conservés.

Documentation de l'API

Point de terminaison de la requête

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

Paramètres de la requête

Nom du paramètre Type Requis Description
oldSchema textarea Oui -
newSchema textarea Oui -
schemaType select Non -
inputFormat text Non -
includeImpactAnalysis checkbox Non -

Format de réponse

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

Documentation de MCP

Ajoutez cet outil à votre configuration de serveur MCP:

{
  "mcpServers": {
    "elysiatools-openapi-diff-breach-detector": {
      "name": "openapi-diff-breach-detector",
      "description": "Compare des schemas OpenAPI ou GraphQL, signale les breaking changes et genere un rapport dimpact pour les equipes API",
      "baseUrl": "https://elysiatools.com/mcp/sse?toolId=openapi-diff-breach-detector",
      "command": "",
      "args": [],
      "env": {},
      "isActive": true,
      "type": "sse"
    }
  }
}

Vous pouvez chaîner plusieurs outils, par ex.: `https://elysiatools.com/mcp/sse?toolId=png-to-webp,jpg-to-webp,gif-to-webp`, max 20 outils.

Si vous rencontrez des problèmes, veuillez nous contacter à [email protected]