Problem gelöst durch Diff Anything macOSWindows

Überprüfen Sie die API-Kompatibilität, nicht die YAML-Bewegung

OpenAPI und JSON Schema lokal vergleichen, wahrscheinlich inkompatible Änderungen erkennen und API-Verträge auf Ihrem Computer behalten.

Sehen Sie es in der App

Ein fokussierter Workflow auf Ihrem Computer.

Keine Konten, Cloud-Vergleichsdienst, Analysen oder Telemetrie.

Diff Anything Drei-Wege-Zusammenführungsarbeitsbereich, der „Unsere“ und „Ihre“ gegenüber der Basis mit einem ungelösten Konflikt zeigt
Diff AnythingDurch den strukturierten Vergleich bleiben Kompatibilitätsergebnisse mit den ursprünglichen Vertragsquellen verknüpft.

Das Problem

Warum der gewohnte Arbeitsablauf im Weg steht.

Ein Zeilenunterschied kann dazu führen, dass neu angeordnete YAML oder JSON wichtig aussehen, während die Vertragsänderungen ausgeblendet werden, die einen vorhandenen API-Verbraucher beschädigen können: entfernte Vorgänge, engere Schemata, geänderte Parameter oder neue Anforderungen.

Die Lösung

Wie Diff Anything damit umgeht.

Diff Anything analysiert das OpenAPI- und JSON-Schema als Verträge, kennzeichnet wahrscheinlich inkompatible Änderungen mit heuristischen Regelcodes und zeigt ein Urteil und eine Anzahl der inkompatiblen Änderungen an. Mit Pro auf Windows führen CLI und Batch-Manifeste denselben Vergleich in CI durch und der Job kann nur bei kritischen oder nicht klassifizierten Änderungen fehlschlagen.

01 / Vertragsprüfung

Benennen Sie die Baseline und den Kandidaten richtig

Die Basis ist der Vertrag, den bestehende Verbraucher bereits nutzen; Der Kandidat ist der vorgeschlagene Ersatz. Diese Richtung ist wichtig, da das Entfernen einer Operation oder das Einschränken eines akzeptierten Werts einen anderen Kompatibilitätseffekt hat als das Hinzufügen einer Operation.

Halten Sie die Quellversionen während der Überprüfung verfügbar. Eine Regelübereinstimmung ist ein Beweis für eine Freigabeentscheidung und kein Ersatz für das Verständnis des betroffenen Verbraucherworkflows.

02 / Vertragsprüfung

Trennen Sie wahrscheinliche Unterbrechungen von kontextabhängigen Änderungen

Überprüfen Sie zunächst entfernte oder neu erforderliche Vertragselemente und untersuchen Sie dann Änderungen, deren Auswirkungen vom Verbraucherverhalten oder der Laufzeitsemantik abhängen. Kompatible Ergänzungen verdienen dennoch eine Überprüfung, wenn undokumentiertes Verhalten oder eine benutzerdefinierte Validierung vorliegt.

Der Vergleich beschreibt den Vertrag, den er analysieren kann. Laufzeitverhalten, Serverimplementierung und undokumentierte Erwartungen bleiben außerhalb dieser Beweise.

  • Beginnen Sie mit entfernten Pfaden, Operationen, Parametern, Eigenschaften und Enumerationswerten.
  • Überprüfen Sie neue Anforderungen und engere Typen.
  • Behandeln Sie semantisches Verhalten als menschliche Überprüfungsgrenze.

03 / Vertragsprüfung

Ein CI-Job schlägt nur bei wichtigen Änderungen fehl

Führen Sie mit Pro auf Windows diff-anything --cli --mode api --fail-on breaking aus oder legen Sie failOn: break für einen Fall in einem Batch-Manifest fest. Identische oder äquivalente Schemata werden bestanden, nicht unterbrechende Änderungen sind zulässig und der Job schlägt bei unterbrechenden Änderungen und bei Änderungen, die die Regeln nicht klassifizieren konnten, fehl. Die JUnit- und SARIF-Ausgabe listet jedes Ergebnis mit seinem Regelcode auf, z. B. API001 für einen entfernten Vorgang.

Die Regeln sind heuristisch: $ref wird als geschrieben und nicht als gelöst verglichen, Anforderungs- und Antwortschemata werden gleich behandelt und einige inkompatible Änderungen werden nicht klassifiziert, z. B. ein entfernter Komponenteneintrag, ein umbenannter oder verschobener Parameter oder hinzugefügte zusätzliche Eigenschaften: false. Behandeln Sie eine bestandene Prüfung als erstes Tor und nicht als Kompatibilitätsnachweis und behalten Sie lokal und in CI die gleiche Grundlinienrichtung bei.

Klare Antworten

Häufige Fragen zum lokalen Vergleich der OpenAPI-Spezifikationen.

Ist ein OpenAPI-Diff dasselbe wie ein Text-Diff?

Nein. Der Vertragsvergleich konzentriert sich auf analysierte Vorgänge, Parameter, Schemata und kompatibilitätsorientierte Änderungen und nicht nur auf die Verschiebung der Quellzeile.

Kann das Ergebnis in CI verwendet werden?

Ja. Mit Pro auf Windows schlägt --fail-on breaking oder ein Batch-Fall mit failOn: breaking den Job nur bei Breaking oder nicht klassifizierten Änderungen fehl und identische Schemata werden übergeben. Batch-Manifeste geben JSON, JUnit oder SARIF mit dem Regelcode jedes Ergebnisses aus. Da die Regeln heuristisch sind, ist eine Vertragsüberprüfung weiterhin erforderlich.

Beweist der Vergleich die Laufzeitkompatibilität?

Nein. Laufzeitverhalten, benutzerdefinierte Validierung, undokumentierte Erwartungen und semantische Bedeutung erfordern immer noch eine menschliche Überprüfung und Tests.

Drei kurze Schritte

Vergleichen Sie den Vertrag, auf den Kunden angewiesen sind.

  1. 01

    Öffnen Sie die Basis- und Kandidatenverträge.

  2. 02

    Lassen Sie Auto den API-Schemamodus auswählen oder wählen Sie ihn aus.

  3. 03

    Überprüfen Sie zuerst die gekennzeichneten Änderungen und überprüfen Sie dann den Rest des Ergebnisses.

Verfügbar für macOS und Windows

Lösen Sie es mit Diff Anything.