Loading JSON Schema to OpenAPI Converter...
Please wait a moment

Wie konvertiert man JSON Schema in OpenAPI 3.0 - Schritt-fuer-Schritt-Anleitung

JSON Schema Definitionen in eine gueltige OpenAPI 3.0 components/schemas Struktur einbetten

Schritt 1

JSON Schema einfuegen

Fuegen Sie Ihr JSON Schema (Draft-04 bis Draft-2020-12) ein. Der Konverter extrahiert Schemas aus $defs oder definitions und platziert jedes in components/schemas:

Direkt einfuegen: Fuegen Sie ein JSON Schema aus Ihrem Projekt, einer Validierungsbibliothek oder einem automatisch generierten Schema ein
Datei hochladen: Laden Sie eine .json Schema-Datei direkt von der Festplatte
Beispiel ausprobieren: Klicken Sie auf Beispiel, um ein E-Commerce-Schema mit Produkten, Bestellungen und verschachtelten $defs zu laden

Beispiel: JSON Schema Eingabe mit $defs

Ein JSON Schema mit benannten Definitionen und $ref Verweisen:

{
  "$schema": "https://json-schema.org/draft-07/schema",
  "title": "Product",
  "$defs": {
    "Product": {
      "type": "object",
      "required": ["id", "name"],
      "properties": {
        "id": { "type": "integer" }
        "name": { "$ref": "#/$defs/Name" }
      }
    }
  }
}
Schritt 2

Automatisch generiertes OpenAPI 3.0 YAML

Der Konverter verpackt Ihre Schemas in eine vollstaendige OpenAPI 3.0 Struktur und schreibt alle $ref-Pfade vom JSON Schema Format in das OpenAPI Format um:

$ref Umschreibung: #/$defs/Foo und #/definitions/Foo werden zu #/components/schemas/Foo
Metadaten entfernt: $schema und $id werden entfernt - sie sind in OpenAPI 3.0 nicht gueltig
Vollstaendige Spezifikation: Die Ausgabe enthaelt openapi, info, paths und components, sodass das Ergebnis ein gueltiges OpenAPI-Dokument ist

Beispiel: Generierte OpenAPI 3.0 Ausgabe

Schemas unter components/schemas mit umgeschriebenen $refs:

openapi: 3.0.3
info:
  title: Product API
  version: 1.0.0
components:
  schemas:
    Product:
      type: object
      required: [id, name]
      properties:
        name:
          $ref: '#/components/schemas/Name'
Schritt 3

Herunterladen, validieren und verwenden

Die Ausgabe ist eine vollstaendige OpenAPI 3.0 YAML-Spezifikation, die sofort mit jedem OpenAPI-Tool verwendet werden kann:

Validieren: Fuehren Sie es durch unseren OpenAPI Validator, um zu pruefen, ob die Ausgabe eine gueltige OpenAPI 3.0 Spezifikation ist
Code generieren: Fuehren Sie die Ausgabe in unsere OpenAPI zu TypeScript, OpenAPI zu Python oder andere Konverter ein
Manuelle Anpassung: Fuegen Sie paths, security und servers zum heruntergeladenen YAML hinzu, um Ihre Spezifikation zu vervollstaendigen

Was ist JSON Schema zu OpenAPI Konvertierung?

JSON Schema und OpenAPI 3.0 verwenden sehr aehnliche Schema-Sprachen - das Schema-Objekt von OpenAPI ist eine Teilmenge von JSON Schema Draft-07. Das bedeutet, dass die meisten JSON Schema Definitionen direkt in einer OpenAPI-Spezifikation verwendet werden koennen, mit nur geringfuegigen Anpassungen an Referenzpfaden und Metadatenfeldern.

Die wichtigsten Unterschiede, die dieser Konverter behandelt: JSON Schema speichert benannte Schemas unter $defs (Draft-2019-09+) oder definitions (Draft-07), waehrend OpenAPI sie unter components/schemas speichert. Dementsprechend muessen $ref-Pfade wie #/$defs/Foo in #/components/schemas/Foo umgeschrieben werden. Die Metaschema-Schluesselbegriffe $schema und $id werden ebenfalls entfernt, da sie nicht Teil des OpenAPI-Schemaobjekts sind.

Nach der Konvertierung fuegens Sie in der Regel paths, servers und security Abschnitte hinzu, um die Spezifikation zu vervollstaendigen. Der umgekehrte Vorgang - Extraktion von JSON Schema aus OpenAPI - ist ueber unseren OpenAPI zu JSON Schema Konverter verfuegbar.

Haeufig gestellte Fragen

Welche JSON Schema Versionen werden unterstuetzt?

Der Konverter unterstuetzt Draft-04, Draft-06, Draft-07, Draft-2019-09 und Draft-2020-12. Er verarbeitet sowohl definitions (aeltere Versionen) als auch $defs (neuere Versionen) als Quellen fuer benannte Schemas.

Sind alle JSON Schema Schluesselbegriffe mit OpenAPI 3.0 kompatibel?

Die meisten Kernschluesselbegriffe sind kompatibel - type, properties, required, enum, allOf, oneOf, anyOf, items und format funktionieren direkt. Nur in JSON Schema vorhandene Schluesselbegriffe wie const, contentMediaType und $anchor sind nicht Teil von OpenAPI und benoetigen nach der Konvertierung eventuell eine manuelle Bereinigung.

Was passiert mit dem Root-Schema, wenn es keine $defs hat?

Wenn das JSON Schema keine $defs oder definitions hat, wird das Root-Schema selbst in components/schemas platziert und verwendet das title-Feld als Schemaname (oder Schema, wenn kein Titel gesetzt ist).

Kann ich dies umkehren und JSON Schema aus einer OpenAPI-Spezifikation extrahieren?

Ja. Verwenden Sie unseren OpenAPI zu JSON Schema Konverter, um Komponentenschemas aus einer OpenAPI 3.0 oder Swagger 2.0 Spezifikation als eigenstaendige JSON Schema Dateien zu extrahieren.

Ist die Ausgabe eine vollstaendige, gueltige OpenAPI-Spezifikation?

Die Ausgabe enthaelt alle erforderlichen OpenAPI-Felder (openapi, info, paths), sodass sie die strukturelle Validierung besteht. Das paths-Objekt ist jedoch leer - Sie muessen Ihre API-Endpunkte manuell hinzufuegen. Fuehren Sie die Ausgabe durch unseren OpenAPI Validator, um sie zu pruefen.

Ist dieser Konverter kostenlos?

Ja, vollstaendig kostenlos ohne Einschraenkungen bei der Schemagroesse. Keine Registrierung erforderlich. Die gesamte Konvertierung laeuft in Ihrem Browser - Ihr Schema verlaesst nie Ihr Geraet.