✍️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.1

Bü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
subtitlestring | null
Untertitel oder null
isbnstringMuster "^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
borninteger≥ 1000 · ≤ 2100
Category

Rekursiv – eine Kategorie kann eine Oberkategorie haben

name *string
parent
Order
idintegernur lesen
statusstringeins von "offen", "versandt", "storniert" · nur lesen
items *
bookId *integer≥ 1
quantity *integer≥ 1 · ≤ 10
[ ]Einträge ≥ 1
Problem

Fehlerformat nach RFC 9457 (Problem Details)

typestring (uri-reference)
titlestring
statusinteger
detailstring
✅ 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“).
RegelStufeWorum geht es?
openapi-feld⛔ Fehleropenapi fehlt oder ist keine Version 3.0.x/3.1.x/3.2.x
swagger-2⛔ FehlerSwagger-2.0-Datei erkannt (swagger: "2.0")
info-pflicht⛔ Fehlerinfo, info.title und info.version sind Pflicht
inhalt-pflicht⛔ Fehler3.0: paths ist Pflicht · ab 3.1: mindestens paths, components oder webhooks
pfad-slash⛔ FehlerPfade müssen mit / beginnen
pfadparameter-fehlt⛔ Fehler{name} im Pfad ohne passenden Parameter in: path
pfadparameter-unbenutzt⛔ FehlerParameter in: path, der im Pfad-Template nicht vorkommt
pfadparameter-required⛔ FehlerPfadparameter brauchen required: true
parameter-form⛔ FehlerParameter: name, gültiges in und genau eines von schema/content
parameter-doppelt⛔ FehlerGleicher Parameter (name + in) mehrfach in einer Operation
operationid-doppelt⛔ FehleroperationId muss im ganzen Dokument eindeutig sein
responses⚠️ WarnungOperation ohne responses (3.0: Pflicht, ab 3.1 optional, aber üblich)
response-beschreibung⛔ FehlerResponse ohne description (bis 3.1 Pflicht, ab 3.2 optional)
statuscode⛔ FehlerStatuscode muss 100–599, 1XX…5XX oder default sein
ref-unbekannt⛔ Fehler$ref zeigt auf ein nicht vorhandenes Ziel
ref-externℹ️ HinweisExterner $ref – wird im Browser nicht nachgeladen
ref-geschwister⚠️ WarnungFelder neben $ref, die ignoriert werden
nullable⚠️ Warnungnullable gibt es ab 3.1 nicht mehr – type: [string, "null"] verwenden
schema⛔ FehlerSchema verletzt JSON Schema 2020-12 (z. B. type: strin)
beispiel⚠️ WarnungBeispiel passt nicht zum eigenen Schema
security-unbekannt⛔ FehlerSecurity-Anforderung nennt ein nicht definiertes Schema
security-schema⛔ FehlerSecurity Scheme unvollständig (z. B. apiKey ohne name/in)
tag-undeklariertℹ️ HinweisOperation nutzt einen Tag, der oben unter tags fehlt
get-body⚠️ WarnungGET/HEAD/DELETE mit requestBody – viele Werkzeuge ignorieren das
versionsfeature⛔ FehlerFeld aus einer neueren Version (webhooks < 3.1, query/$self < 3.2)
server-url⛔ FehlerServer-Eintrag ohne url