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.

Drei-Wege-Zusammenführung mit Basis, unseren und ihren Änderungen sowie einem offenen Konflikt in der deutschen Oberfläche von Diff Anything.
Drei-Wege-Zusammenführung mit Basis, unseren und ihren Änderungen sowie einem offenen Konflikt in der deutschen Oberfläche von Diff Anything.

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 führen CLI und Batch-Manifeste denselben Vergleich in CI durch, unter Windows oder, über das kostenlose Befehlszeilenhilfsprogramm, auf dem Mac, und können den Job nur bei inkompatiblen oder nicht klassifizierten Änderungen fehlschlagen lassen.

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 diff-anything --cli --mode api --fail-on breaking aus oder legen Sie failOn: breaking für einen Fall in einem Batch-Manifest fest, unter Windows oder, mit dem kostenlosen Befehlszeilenhilfsprogramm, auf dem Mac. Identische oder äquivalente Schemata bestehen die Prüfung, kompatible Änderungen sind zulässig, und der Job schlägt bei inkompatiblen Änderungen und bei Änderungen fehl, die die Regeln nicht klassifizieren konnten. 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, unter Windows oder über das kostenlose Befehlszeilenhilfsprogramm auf dem Mac, lassen --fail-on breaking oder ein Batch-Fall mit failOn: breaking den Job nur bei inkompatiblen oder nicht klassifizierten Änderungen fehlschlagen, und identische Schemata bestehen die Prüfung. Batch-Manifeste geben JSON, JUnit oder SARIF mit dem Regelcode jedes Ergebnisses aus. Da die Regeln heuristisch sind, ist eine Vertragsprü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.