OpenAPI YAML Validator

Plak uw openapi.yaml en de validator controleert de onderdelen die elke specificatie nodig heeft: een versieveld, een info-object met een titel en versie en een paths-object. Hij waarschuwt ook voor padsleutels zonder schuine streep vooraan en voor bewerkingssleutels die hij niet herkent.

Een OpenAPI YAML-bestand valideren

  1. 1

    Kopieer de YAML

    Kopieer de volledige inhoud van uw `openapi.yaml` of `swagger.yaml` en houd de inspringing precies zoals die is.

  2. 2

    Plak het in het veld

    Plak het in het vak voor het OpenAPI- / Swagger-document. In YAML is inspringing de structuur, dus typ of formatteer het niet opnieuw.

  3. 3

    Voer de validatie uit

    Ga naar de stap met resultaten en lees de fouten en waarschuwingen.

  4. 4

    Corrigeer en controleer opnieuw

    Los elk gemeld punt in uw bestand op, plak de nieuwe versie en draai de controle opnieuw.

Waarom inspringing het resultaat bepaalt

In YAML bepaalt de nesting van sleutels bij welk object een veld hoort. Staat version op hetzelfde niveau als info in plaats van één niveau lager, dan blijft het document leesbare YAML, maar ontbreekt info.version en meldt de controle dat. Hetzelfde geldt voor paths: een padsleutel die per vergissing onder info is ingesprongen, laat het paths-object op het hoogste niveau verdwijnen.

Gebruik spaties, geen tabs, en houd één vaste stap aan, bijvoorbeeld twee spaties per niveau.

Een uitgewerkt voorbeeld

openapi: 3.0.3
info:
  title: Pets API
paths:
  /pets:
    get:
      summary: List pets

Het versieveld, info.title en paths zijn aanwezig, en /pets begint met een schuine streep met get als bekende methode. Eén ding ontbreekt: info.version. Het rapport somt op:

Bevinding Type
info.version is verplicht. Fout

Voeg version: 1.0.0 toe onder info, met twee spaties inspringing, dan wordt het document structureel als geldig gemeld.

Houd documenten eenvoudig voor een betrouwbaar resultaat

De controle leest gewone YAML-mappings het best: eenvoudige regels sleutel: waarde, genest met consistente inspringing. Als een document met geavanceerde YAML-functies zoals ankers of blokken over meerdere regels als onleesbaar wordt gemeld of velden als ontbrekend toont, probeer dan een JSON-kopie van dezelfde specificatie om te zien of het probleem in de inhoud zit of in de YAML-syntaxis.

Een schoon resultaat bevestigt alleen het skelet. Het lost geen $ref-verwijzingen op en controleert geen schema’s.

Een praktische werkwijze voor YAML-specificaties

Bewerk in kleine stappen en controleer vaak opnieuw. Plak het bestand na het toevoegen van een nieuw pad of het verplaatsen van een blok opnieuw, zodat een verkeerde inspringing wordt opgemerkt terwijl de wijziging nog vers is. Als u een grote specificatie over meerdere bestanden verdeelt, plak dan de samengevoegde versie, want deze controle leest alleen de tekst die u aanlevert en laadt geen andere bestanden. Kopieer uit uw editor en niet van een weergegeven webpagina, want webpagina’s kunnen spaties en aanhalingstekens vervangen door op elkaar lijkende tekens die de YAML anders laten lezen.

Onthoud ten slotte dat het rapport alleen laat zien wat de controle kan zien. Een schoon resultaat op een YAML-bestand betekent dat het skelet op het hoogste niveau klopt, niet dat elke bewerking, elk schema of elke verwijzing erin klopt.

Veelgestelde vragen

Spaties. YAML accepteert geen tabs voor inspringing, en een tab kan het document onleesbaar maken of velden op het verkeerde niveau zetten.

Meestal staat het veld op een verkeerd niveau ingesprongen, zodat het bij een ander object hoort dan bedoeld. Vergelijk de inspringing met die van de bovenliggende sleutel.

Deze controle kijkt alleen of het veld openapi of swagger bestaat, niet naar de waarde, dus versies met en zonder aanhalingstekens slagen allebei. Voor Swagger blijft "2.0" tussen aanhalingstekens een goede gewoonte.

Ja. Het document wordt eerst als JSON gelezen en, als dat mislukt, als YAML, dus beide formaten werken in hetzelfde veld.

Gerelateerde tools

Tool beschikbaar in andere talen

Handleidingen en toepassingen