Naar de inhoud

JSON Schema naar OpenAPI-specificatieconverter — Numio

Converteert een JSON-schema (draft-04 en hoger) naar een OpenAPI 3.0-schemaobject. Type-arrays die 'null' bevatten, worden 'nullable: true', const wordt een opsomming van één item en voorbeelden worden één voorbeeld.

U valideert payloads met een concept-07-schema en heeft hetzelfde model nodig onder componenten/schema's in een OpenAPI 3.0-document.

JSON Schema

Open API Schema

Wanneer gebruik je dit?

  • U valideert payloads met een concept-07-schema en heeft hetzelfde model nodig onder componenten/schema's in een OpenAPI 3.0-document.
  • Uw OpenAPI 3.0-tooling weigert "type": ["string", "null"] en u moet null-velden herschrijven.

Hoe werkt het

  1. Plak een JSON-schema in het paneel JSON Schema; het moet geldig JSON zijn, omdat de pagina het parseert voordat het wordt verzonden.
  2. Het schema wordt lokaal in je browser omgezet naar een OpenAPI-schema. Controleer de uitvoer in het resultaatpaneel.
  3. Kopieer het resultaat uit het venster Open API Schema en plaats het onder componenten/schema's in uw OpenAPI-bestand.

JSON-schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "kind": { "const": "invoice" },
    "total": { "type": ["number", "null"], "exclusiveMinimum": 0 },
    "notes": { "type": "string", "examples": ["Net 30"] }
  },
  "required": ["kind"]
}

OpenAPI 3.0 Schema-object

{
  "type": "object",
  "properties": {
    "kind": {
      "enum": [
        "invoice"
      ]
    },
    "total": {
      "type": "number",
      "exclusiveMinimum": true,
      "nullable": true,
      "minimum": 0
    },
    "notes": {
      "type": "string",
      "example": "Net 30"
    }
  },
  "required": [
    "kind"
  ]
}

Details en beperkingen

De conversie vindt lokaal plaats in een Web Worker in je browser. Je invoer wordt niet naar een conversieserver verstuurd. De benodigde bibliotheken worden in de browser geladen.

Het trefwoord $schema is verwijderd. Numerieke exclusiveMinimum/exclusiveMaximum worden herschreven naar de OpenAPI 3.0-vorm: minimum/maximum plus een Booleaanse vlag.

$ref-waarden blijven zoals ze zijn en definities worden niet verplaatst naar componenten/schema's, dus u moet referentiepaden zelf repareren.

Het doel is OpenAPI 3.0. OpenAPI 3.1 maakt al rechtstreeks gebruik van het JSON-schema en heeft meestal geen conversie nodig.

FAQ

Hoe worden nulbare typen geconverteerd?

Een type array zoals ["number", "null"] wordt "type": "number" met "nullable": true, zoals in het voorbeeld.

Lost het $ref-referenties op?

Nee. De pagina verwijst niet naar verwijzingen; "$ref": "#/definitions/Tag" en het definitieblok worden ongewijzigd gekopieerd.

Wat gebeurt er met const en voorbeelden?

const wordt een enum met één waarde en de array examples wordt vervangen door één example op basis van het eerste element.

Specificaties en referenties