✍️Editor + Live-Vorschau
Links YAML oder JSON, rechts eine selbst gebaute Dokumentation – ohne Swagger UI, ohne Server. Jede Änderung wird sofort geparst (npm yaml), gegen die Regeln geprüft und die Schemas mit Ajv (JSON Schema 2020-12) validiert. Ein Klick auf ein Problem springt zur Zeile.
openapi.yaml · 316 Zeilen✅ gültig
Buchladen-API
v1.2.0OAS 3.1.1Bücher suchen, anlegen und bestellen
Beispiel-API der App VisualOpenApi – alle Daten sind erfunden.
🌐 https://api.example.org/v1 · Produktion🌐 http://localhost:4010 · Lokaler Mock-Server (z. B. Prism)
Bücher – Katalog lesen und pflegen
Bestellungen – Warenkorb abschicken
🪝 Webhooks – die API ruft Sie auf
🧬 Schemas
NewBook
| title * | stringLänge ≥ 1 · Länge ≤ 200 |
| subtitle | string | null Untertitel oder null |
| isbn | stringMuster "^97[89][0-9]{10}$" |
| author * | |
| price * | number≥ 0 Preis in Euro |
| category |
Book
allOf (alle zusammen)
| id * | integer (int64)≥ 1 · nur lesen |
Author
| name * | string |
| born | integer≥ 1000 · ≤ 2100 |
Category
Rekursiv – eine Kategorie kann eine Oberkategorie haben
| name * | string |
| parent |
Order
| id | integernur lesen | ||||
| status | stringeins von "offen", "versandt", "storniert" · nur lesen | ||||
| items * |
|
Problem
Fehlerformat nach RFC 9457 (Problem Details)
| type | string (uri-reference) |
| title | string |
| status | integer |
| detail | string |
✅ Ihre Eingabe bleibt im Browser
Der Text wird nur im localStorage dieses Browsers gemerkt, damit Request-Debugger und Codegenerierung ihn weiterverwenden können. Nichts wird an einen Server geschickt.
📋Welche Regeln werden geprüft?
Eine Auswahl der Fehler, an denen man in der Praxis am häufigsten scheitert. Für vollständige Prüfungen im Build eignen sich Spectral oder Redocly CLI (siehe „Code & Werkzeuge“).
| Regel | Stufe | Worum geht es? |
|---|---|---|
| openapi-feld | ⛔ Fehler | openapi fehlt oder ist keine Version 3.0.x/3.1.x/3.2.x |
| swagger-2 | ⛔ Fehler | Swagger-2.0-Datei erkannt (swagger: "2.0") |
| info-pflicht | ⛔ Fehler | info, info.title und info.version sind Pflicht |
| inhalt-pflicht | ⛔ Fehler | 3.0: paths ist Pflicht · ab 3.1: mindestens paths, components oder webhooks |
| pfad-slash | ⛔ Fehler | Pfade müssen mit / beginnen |
| pfadparameter-fehlt | ⛔ Fehler | {name} im Pfad ohne passenden Parameter in: path |
| pfadparameter-unbenutzt | ⛔ Fehler | Parameter in: path, der im Pfad-Template nicht vorkommt |
| pfadparameter-required | ⛔ Fehler | Pfadparameter brauchen required: true |
| parameter-form | ⛔ Fehler | Parameter: name, gültiges in und genau eines von schema/content |
| parameter-doppelt | ⛔ Fehler | Gleicher Parameter (name + in) mehrfach in einer Operation |
| operationid-doppelt | ⛔ Fehler | operationId muss im ganzen Dokument eindeutig sein |
| responses | ⚠️ Warnung | Operation ohne responses (3.0: Pflicht, ab 3.1 optional, aber üblich) |
| response-beschreibung | ⛔ Fehler | Response ohne description (bis 3.1 Pflicht, ab 3.2 optional) |
| statuscode | ⛔ Fehler | Statuscode muss 100–599, 1XX…5XX oder default sein |
| ref-unbekannt | ⛔ Fehler | $ref zeigt auf ein nicht vorhandenes Ziel |
| ref-extern | ℹ️ Hinweis | Externer $ref – wird im Browser nicht nachgeladen |
| ref-geschwister | ⚠️ Warnung | Felder neben $ref, die ignoriert werden |
| nullable | ⚠️ Warnung | nullable gibt es ab 3.1 nicht mehr – type: [string, "null"] verwenden |
| schema | ⛔ Fehler | Schema verletzt JSON Schema 2020-12 (z. B. type: strin) |
| beispiel | ⚠️ Warnung | Beispiel passt nicht zum eigenen Schema |
| security-unbekannt | ⛔ Fehler | Security-Anforderung nennt ein nicht definiertes Schema |
| security-schema | ⛔ Fehler | Security Scheme unvollständig (z. B. apiKey ohne name/in) |
| tag-undeklariert | ℹ️ Hinweis | Operation nutzt einen Tag, der oben unter tags fehlt |
| get-body | ⚠️ Warnung | GET/HEAD/DELETE mit requestBody – viele Werkzeuge ignorieren das |
| versionsfeature | ⛔ Fehler | Feld aus einer neueren Version (webhooks < 3.1, query/$self < 3.2) |
| server-url | ⛔ Fehler | Server-Eintrag ohne url |