OpenAPI 3.1 Validator

Fügen Sie ein OpenAPI-3.1-Dokument in JSON oder YAML ein, um seine oberste Struktur zu prüfen. Das Tool sucht nach dem Feld openapi, einem info-Objekt mit title und version sowie einem paths-Objekt. Es handelt sich um eine Strukturprüfung: Schema-Schlüsselwörter von 3.1 werden nicht validiert, und einige mit 3.1 kompatible Muster erzeugen eine Warnung oder einen Fehler, den Sie kennen sollten.

So prüfen Sie ein 3.1-Dokument

  1. 1

    Fügen Sie Ihre 3.1-Spec ein

    Fügen Sie das Dokument mit `openapi: 3.1.0` (oder einem anderen 3.1.x-Wert) als JSON oder YAML in das Feld ein.

  2. 2

    Prüfung starten

    Wechseln Sie zum Schritt Ergebnisse, um Fehler und Warnungen zu sehen.

  3. 3

    Hinweise zu 3.1 lesen

    Prüfen Sie, ob ein markierter Punkt ein echter Fehler ist oder eines der unten beschriebenen 3.1-Muster.

  4. 4

    Mit einem vollständigen Linter nachprüfen

    Verwenden Sie einen vollständigen Validator für die Regeln von JSON Schema 2020-12, sobald die Struktur stimmt.

Was dieses Tool bei 3.1-Dateien prüft

Version 3.1 richtet Schemas an JSON Schema 2020-12 aus. Dieser Validator liest die Schemas nicht selbst. Er prüft nur die oberste Ebene und die Pfadeinträge, daher bestehen oder scheitern 3.1-Schemamerkmale wie Typlisten oder const hier nicht. Auch der Wert der Version selbst wird nicht geprüft: Jedes Feld openapi gilt als vorhanden.

Zwei 3.1-Muster im Blick behalten

Muster in Ihrer 3.1-Datei Was das Tool meldet
Objekt webhooks ohne Objekt paths Fehler: Objekt ‘paths’ fehlt.
Operation trace unter einem Pfad Warnung: Unbekannte Methode ‘trace’ im Pfad
$ref als Schlüssel eines Pfadelements Warnung: Unbekannte Methode ‘$ref’ im Pfad

OpenAPI 3.1 erlaubt es, nur Webhooks zu beschreiben und paths wegzulassen. Dieses Tool verlangt paths, daher wird eine solche Datei mit einem Fehler gemeldet, obwohl die Spezifikation sie erlaubt. Ein leeres Objekt paths: {} erfüllt die Prüfung.

Die hier verwendete Methodenliste umfasst get, post, put, patch, delete, head, options sowie parameters, summary, description und servers. Die Methode trace ist in der Spezifikation vorhanden, steht aber nicht auf dieser Liste und löst deshalb eine Warnung aus, die Sie ignorieren können, wenn sie beabsichtigt ist. Warnungen machen ein Dokument nicht ungültig.

Ein Beispiel

openapi: 3.1.0
info:
  title: Events API
  version: 2.0.0
webhooks:
  newEvent:
    post:
      summary: Event delivered

Ergebnis: ein Fehler, „Objekt ‘paths’ fehlt.“ Fügen Sie paths: {} hinzu, dann besteht die Struktur die Prüfung.

Wann dieses Tool genügt und wann Sie weitergehen sollten

Nutzen Sie diese Seite, um vor einem Pull Request oder vor der Weitergabe an einen Partner zu bestätigen, dass eine 3.1-Datei korrekt aufgebaut ist. Die Prüfungen sind schnell und die Meldungen verständlich. Sobald die Struktur stimmt, brauchen die Schemaregeln von 3.1 weiterhin einen vollständigen Linter, denn dort liegen die meisten echten Fehler: ungültige Typdeklarationen, defekte Verweise und fehlende Antwortdefinitionen. Betrachten Sie beide Schritte als sich ergänzend, nicht als Alternativen.

Wenn eine Warnung beabsichtigt ist, etwa bei trace, vermerken Sie das im Pull Request, damit Reviewer nicht nachfragen müssen. Warnungen ändern das gültige Ergebnis nie, Sie können sie also gefahrlos stehen lassen. Fehler sind die Punkte, die vor der Weitergabe der Datei behoben werden müssen.

Häufig gestellte Fragen

Nein. Es prüft den Inhalt der Schemaobjekte nicht, daher werden die Schlüsselwörter von JSON Schema 2020-12 nicht geprüft. Abgedeckt werden nur die oberste Struktur und die Pfadeinträge.

Die Prüfung verlangt ein Objekt paths. Eine 3.1-Datei mit nur Webhooks hat keines, daher wird ein Fehler für das fehlende paths-Objekt gemeldet. Fügen Sie ein leeres paths: {} hinzu, um die Prüfung zu bestehen.

Nein. Es prüft nur, ob ein Feld openapi oder swagger existiert, nicht welchen Wert es hat.

Nicht unbedingt. trace ist eine gültige Operation in der Spezifikation. Das Tool nimmt sie nur nicht in seine Liste bekannter Methoden auf.

Verwandte Tools

Tool in anderen Sprachen verfügbar

Anleitungen und Anwendungsfälle