Problème résolu par Diff Anything macOSWindows

Vérifier la compatibilité API, pas le mouvement YAML

Comparez OpenAPI et JSON Schema localement, repérez les changements probablement incompatibles et gardez vos contrats d’API sur votre ordinateur.

Voir dans l’application

Un flux de travail ciblé, sur votre ordinateur.

Aucun compte, service de comparaison cloud, analyse ou télémétrie.

Espace de travail de fusion à trois voies Diff Anything montrant les nôtres et les leurs contre la base avec un conflit non résolu
Diff AnythingLa comparaison structurée maintient les résultats de compatibilité connectés aux sources contractuelles d’origine.

Le problème

Pourquoi le flux de travail habituel constitue un obstacle.

Une différence de ligne peut donner l’impression que YAML ou JSON réorganisé est important tout en masquant les modifications de contrat qui peuvent interrompre un consommateur API existant : opérations supprimées, schémas plus restreints, paramètres modifiés ou nouvelles exigences.

La solution

Comment Diff Anything le gère.

Diff Anything analyse les schémas OpenAPI et JSON en tant que contrats, étiquette les modifications probables avec des codes de règles heuristiques et affiche un verdict et un décompte de modifications incompatibles. Avec Pro sur Windows, le CLI et les manifestes par lots exécutent la même comparaison dans CI et peuvent faire échouer la tâche uniquement en cas de modifications incompatibles ou non classifiées.

01 / Revue de contrat

Nommez correctement la référence et le candidat

La référence est le contrat que les consommateurs existants utilisent déjà ; le candidat est le remplaçant proposé. Cette direction est importante car la suppression d’une opération ou la réduction d’une valeur acceptée a un effet de compatibilité différent de celui de l’ajout d’une.

Conserver les versions sources disponibles lors de la révision. Une correspondance de règle constitue une preuve d’une décision de publication et ne remplace pas la compréhension du flux de travail du consommateur concerné.

02 / Revue de contrat

Séparer les ruptures probables des changements dépendants du contexte

Examinez d’abord les éléments du contrat supprimés ou nouvellement requis, puis examinez les modifications dont l’effet dépend du comportement du consommateur ou de la sémantique d’exécution. Les ajouts compatibles méritent toujours d’être examinés en cas de comportement non documenté ou de validation personnalisée.

La comparaison décrit le contrat qu’elle peut analyser. Le comportement d’exécution, la mise en œuvre du serveur et les attentes non documentées restent en dehors de cette preuve.

  • Commencez avec les chemins, opérations, paramètres, propriétés et valeurs d’énumération supprimés.
  • Examiner les nouvelles exigences et les types plus restreints.
  • Traitez le comportement sémantique comme une limite de révision humaine.

03 / Revue de contrat

Échec d’une tâche CI uniquement en cas de modifications incompatibles

Avec Pro sur Windows, exécutez diff-anything --cli --mode api --fail-on breaking ou définissez failOn : Break pour un cas dans un manifeste par lots. Les schémas identiques ou équivalents réussissent, les modifications ininterrompues sont autorisées et la tâche échoue en cas de modifications incompatibles et de modifications que les règles n’ont pas pu classer. Les sorties JUnit et SARIF répertorient chaque résultat avec son code de règle, tel que API001 pour une opération supprimée.

Les règles sont heuristiques : $ref est comparé tel qu’écrit plutôt que résolu, les schémas de requête et de réponse sont traités de la même manière, et certaines modifications incompatibles ne sont pas classées, comme une entrée de composants supprimée, un paramètre renommé ou déplacé, ou des propriétés supplémentaires ajoutées : false. Considérez un contrôle de réussite comme une première porte, et non comme une preuve de compatibilité, et conservez la même direction de base localement et dans CI.

Des réponses claires

Questions courantes sur la comparaison locale des spécifications OpenAPI.

Une différence OpenAPI est-elle identique à une différence de texte ?

Non. La comparaison des contrats se concentre sur les opérations analysées, les paramètres, les schémas et les modifications orientées vers la compatibilité plutôt que sur le seul mouvement de la ligne source.

Le résultat peut-il être utilisé dans CI ?

Oui. Avec Pro sur Windows, --fail-on breaking ou un cas batch avec failOn : Breaking fait échouer le travail uniquement en cas de rupture ou de modifications non classifiées, et les schémas identiques réussissent. Les manifestes par lots émettent JSON, JUnit ou SARIF avec le code de règle de chaque résultat. Les règles sont heuristiques, une révision du contrat reste donc nécessaire.

La comparaison prouve-t-elle la compatibilité d’exécution ?

Non. Le comportement d’exécution, la validation personnalisée, les attentes non documentées et la signification sémantique nécessitent toujours un examen et des tests humains.

Trois petites étapes

Comparez le contrat dont dépendent les clients.

  1. 01

    Ouvrir les contrats de référence et candidats.

  2. 02

    Laissez Auto choisir le mode Schéma API ou sélectionnez-le.

  3. 03

    Examinez d’abord les modifications signalées, puis vérifiez le reste du résultat.

Disponible pour macOS et Windows

Résolvez-le avec Diff Anything.