Zum Inhalt springen

OpenAPI-Linter

OpenAPI Linter

Prüft ein OpenAPI-Dokument auf fehlende Antworten, ungenutzte Schemas, ins Leere zeigende Referenzen und die anderen Mängel, die Codegeneratoren brechen.

Prüft ein OpenAPI-3.0- oder 3.1-Dokument auf die Dinge, die Codegeneratoren brechen, Client-Bibliotheken lügen lassen oder die die Spezifikation schlicht verlangt. Die Regeln sind handgeschrieben und auf der Seite aufgeführt – Probleme, keine Stilvorlieben.

🔒 Läuft vollständig in Ihrem Browseropenapilintapiquality

OpenAPI-Dokument

Eine openapi.yaml hier ablegen

Wird nur in diesem Tab gelesen.

24 Befunde

  • Fehlerschema-array-itemscomponents.schemas.Order.items

    `type: array` ohne `items`.

  • Fehlerpath-param-undeclaredGET /orders/{orderId}

    `{orderId}` im Pfad ist nicht als Parameter deklariert.

  • Fehlerresponse-descriptionGET /orders/{orderId}

    Der `200`-Antwort fehlt eine description.

  • Fehlerschema-array-itemsGET /orders/{orderId} responses["200"].content["application/json"].items

    `type: array` ohne `items`.

  • Fehlerinfo-missinginfo

    Es gibt kein `info.version`. Das ist die Version der API, nicht die von OpenAPI.

  • Fehleroperation-id-duplicatePOST /orders/{orderId}

    Die operationId `getOrder` steht auch auf GET /orders/{orderId}.

  • Fehlerpath-param-requiredPOST /orders/{orderId}

    Dem `in: path`-Parameter `id` fehlt `required: true`.

  • Fehlerpath-param-undeclaredPOST /orders/{orderId}

    `{orderId}` im Pfad ist nicht als Parameter deklariert.

  • Fehlerpath-param-unusedPOST /orders/{orderId}

    Der `in: path`-Parameter `id` kommt im Pfad nicht vor.

  • Warnungpath-trailing-slash/orders/

    Dieser Pfad endet auf `/`.

  • Warnungschema-unusedcomponents.schemas.Customer

    Nichts referenziert dieses Schema.

  • Warnungoperation-id-missingGET /orders/

    Es gibt keine operationId.

  • Warnungresponse-errorGET /orders/

    Es gibt keine 4xx-Antwort.

  • Warnungdescription-missingGET /orders/{orderId}

    Es gibt weder summary noch description.

  • Warnungresponse-errorGET /orders/{orderId}

    Es gibt keine 4xx-Antwort.

  • Warnungdescription-missingPOST /orders/{orderId}

    Es gibt weder summary noch description.

  • Warnungresponse-errorPOST /orders/{orderId}

    Es gibt keine 4xx-Antwort.

  • Warnungresponse-successPOST /orders/{orderId}

    Es gibt keine 2xx- oder 3xx-Antwort.

  • Hinweistag-missingGET /orders/

    Es gibt keinen Tag.

  • Hinweistag-missingGET /orders/{orderId}

    Es gibt keinen Tag.

  • Hinweisparameter-descriptionPOST /orders/{orderId}

    Dem Parameter `id` fehlt eine description.

  • Hinweisresponse-default-onlyPOST /orders/{orderId}

    Die einzige Antwort ist `default`.

  • Hinweistag-missingPOST /orders/{orderId}

    Es gibt keinen Tag.

  • Hinweisservers-missingservers

    Es ist kein Server aufgeführt, also ist die Basis-URL `/`.

OpenAPI

3.0.3

Operationen

3

Fehler

9

Warnungen

9

Hinweise

6

Ein von Hand geschriebenes Regelwerk. Es findet, woran ein Codegenerator scheitert, wovon eine Client-Bibliothek zu lügen beginnt und was die Spezifikation tatsächlich verlangt — Probleme, keine Vorlieben. Spectral-Regelwerke lädt es nicht.

Nimmt OpenAPI-3.0- und -3.1-Dokumente als JSON oder YAML entgegen. Swagger 2.0 muss vorher auf 3 gehoben werden. Einem `$ref` innerhalb des Dokuments wird gefolgt; einer, der auf eine andere Datei zeigt, lässt sich nicht prüfen und wird als Hinweis gemeldet.

Um zu sehen, was sich zwischen zwei Versionen geändert hat, nehmen Sie OpenAPI-Änderungsvergleich.

So funktioniert es

  1. Fügen Sie das Dokument ein

    JSON oder YAML, 3.0 oder 3.1. Es wird in diesem Tab geparst; nichts wird hochgeladen.

  2. Arbeiten Sie zuerst die Fehler ab

    Jeder Befund trägt die Regel-ID und die genaue Stelle im Dokument. Fehler sind Dinge, die tatsächlich schiefgehen werden; Warnungen sind Dinge, die es meist tun.

  3. Lesen Sie die Regelliste, wenn ein Befund Sie überrascht

    Jede Regel ist ausgeschrieben, mit ihrer Schwere und dem Grund, warum es sie gibt, sodass ein Befund, dem Sie widersprechen, wenigstens ein Argument ist, das Sie lesen können.

Häufige Fragen

Kann es mein Spectral-Regelwerk laden?

Nein. Das ist ein fester, handgeschriebener Regelsatz, gewählt für Probleme und nicht für einen Hausstil. Wenn Sie eine Spectral-Konfiguration haben, ist Spectral das Werkzeug, das sie beachtet.

Es liest meine Swagger-2.0-Datei nicht.

Richtig – 2.0 ist eine andere Dokumentform, kein etwas älteres 3.0, und die Hälfte der Regeln würde nicht darauf zutreffen. Konvertieren Sie sie zuerst; `swagger2openapi` ist der übliche Weg.

Es ist meinem externen `$ref` nicht gefolgt.

Ein `$ref` innerhalb des Dokuments wird aufgelöst; eines, das auf eine andere Datei zeigt, würde bedeuten, von einem Pfad zu laden, den nur Ihre Maschine hat. Es wird als Hinweis gemeldet, damit Sie wissen, dass die Prüfung unvollständig war und nicht sauber.

Warum ist eine fehlende `operationId` eine Warnung?

Weil Generatoren sie verwenden, um die Funktion zu benennen, die sie für diese Operation ausgeben. Ohne sie bekommen Sie einen aus Pfad und Methode abgeleiteten Namen, der sich ändert, sobald der Pfad es tut – eine Umbenennung in Ihrer API wird zu einer Umbenennung in jedem Client.

Eingabe aus

Danach

Diese Tools nehmen an, was dieses hier erzeugt, das Ergebnis kann also direkt weiter.