OpenAPI-validator

Plak eerst een OpenAPI- of Swagger-document.

Je browser heeft tijdelijke opslag geblokkeerd, dus het document kan niet worden meegenomen naar de volgende stap.

Volgende

Plak een OpenAPI- of Swagger-document, in JSON of YAML, en deze validator controleert het volgens de regels van Swagger 2.0 en OpenAPI 3.0, 3.1 en 3.2. Hij bevestigt dat het document te parsen is, dat het veld openapi of swagger een ondersteunde versie bevat, dat info een titel en een versie heeft en dat paths aanwezig is waar de versie dat vereist. Daarna controleert hij elk pad en elke operatie, lost hij elke interne $ref op en zorgt hij dat geen operationId twee keer voorkomt. Het is een structuurcontrole, geen volledige JSON Schema-validator.

Hoe de validatie verloopt

  1. 1

    Plak het document

    JSON of YAML, voor OpenAPI 2 (Swagger) of OpenAPI 3.

  2. 2

    Parse het

    Een document dat met `{` of `[` begint, wordt als strikte JSON geparst, dus een ontbrekende of overbodige komma is een fout. Al het andere wordt als YAML geparst.

  3. 3

    Controleer de vereiste velden

    Hij bevestigt een ondersteunde `openapi`- of `swagger`-versie, een `info`-object met `title` en `version` en een `paths`-object (vanaf OpenAPI 3.1 kan `components` of `webhooks` die plaats innemen).

  4. 4

    Scan de paden

    Elk pad moet met een schuine streep beginnen en mag alleen de velden gebruiken die zijn versie definieert; in Swagger 2.0 en OpenAPI 3.0 moet elke operatie `responses` declareren.

  5. 5

    Lees het rapport

    Elke interne `$ref` moet naar iets in het document verwijzen en elke `operationId` moet uniek zijn. Fouten blokkeren de geldigheid; een waarschuwing somt verwijzingen naar andere bestanden op die niet zijn gevolgd.

Wat deze validator controleert

Controle Resultaat bij falen
Document is te parsen: als strikte JSON als het met { of [ begint, anders als YAML Fout, met de regel om te controleren als die te bepalen is
Versieveld openapi (3.0, 3.1 of 3.2) of swagger ("2.0") aanwezig en als string geschreven Fout
info-object aanwezig Fout
info.title aanwezig Fout
info.version aanwezig Fout
paths-object aanwezig (vanaf 3.1 kan components of webhooks het vervangen) Fout
Elk pad begint met / Fout
Elk pad gebruikt alleen de velden die zijn versie definieert (get, post, parameters, x--extensies enzovoort) Fout
Elke operatie declareert responses (Swagger 2.0 en OpenAPI 3.0) Fout
Elke operationId is uniek Fout
Elke interne $ref (#/...) verwijst naar iets in het document Fout
Een $ref naar een ander bestand, een URL of een anker (#name) Waarschuwing: niet gevolgd

Een document zonder fouten wordt gerapporteerd als structureel geldig, samen met de versie waartegen het is gecontroleerd en het aantal gevonden paden, operaties en interne verwijzingen. Waarschuwingen blokkeren de geldigheid niet.

Wat het niet controleert

Dit is een structuurcontrole, geen volledige specificatievalidator. Het doet niet het volgende:

  • elk knooppunt valideren tegen het officiële JSON Schema van je versie, zoals schemasleutelwoorden, parametervelden of mediatypen;
  • $ref-verwijzingen naar andere bestanden of URL’s volgen;
  • controleren of padparameters consistent worden gedeclareerd en gebruikt;
  • documenten lezen die groter zijn dan 1 MB;
  • regelnummers melden bij structuurfouten (alleen parseerfouten hebben er een).

Voor die diepgang gebruik je een gespecialiseerde CLI-validator zoals redocly lint, swagger-cli validate of spectral lint. Gebruik deze tool voor een snelle controle voordat je een specificatie commit of deelt.

OpenAPI-versies in de praktijk

Versie Opmerkingen
Swagger 2.0 Nog steeds veel in gebruik; gebruikt swagger: "2.0"
OpenAPI 3.0.x De meest gangbare 3.x-lijn
OpenAPI 3.1.x Sluit aan op JSON Schema 2020-12; paths wordt optioneel
OpenAPI 3.2.0 Gepubliceerd in september 2025; voegt de methode query toe

Deze validator accepteert het veld openapi (3.0, 3.1 of 3.2) of het veld swagger (2.0), dus die slagen allemaal voor de versiecontrole. Zet de versie in YAML tussen aanhalingstekens: swagger: "2.0" is een string, terwijl 2.0 zonder aanhalingstekens als getal wordt gelezen en wordt afgewezen.

Een minimaal document dat slaagt

openapi: 3.0.3
info:
  title: Example API
  version: 1.0.0
paths:
  /users:
    get:
      summary: List users
      responses:
        '200':
          description: OK

Alle verplichte velden zijn aanwezig, het enige pad begint met een schuine streep, get is een bekende methode en de operatie declareert de responses die OpenAPI 3.0 vereist, dus dit wordt gerapporteerd als structureel geldig.

Veelgestelde vragen

Swagger was de oorspronkelijke naam van de specificatie, die in 2015 aan de Linux Foundation werd gedoneerd en vanaf versie 3.0 werd hernoemd tot “OpenAPI”. “Swagger” verwijst nu naar de tools (Swagger UI, Swagger Editor). De specificatie zelf is OpenAPI. Deze validator accepteert zowel het versieveld swagger (2.0) als openapi (3.x).

Nee. Hij controleert de structuur: dat het document te parsen is, een ondersteunde versie heeft, een info-object met titel en versie en de paths die zijn versie vereist, dat paden en hun velden de specificatie volgen, dat operaties responses declareren waar dat verplicht is, dat elke interne $ref oplost en dat geen operationId zich herhaalt. Hij valideert niet elk knooppunt tegen het officiële JSON Schema. Gebruik daarvoor redocly lint of spectral lint.

Ja, binnen het document. Elke $ref die met #/ begint, zoals #/components/schemas/Pet, moet naar een bestaand deel van het document verwijzen, anders wordt hij als fout gemeld. Verwijzingen naar andere bestanden of URL’s staan in een waarschuwing en worden niet gevolgd: bundel het document eerst met een tool als redocly bundle of swagger-cli bundle en plak dan het resultaat.

Nee. Het inspecteert alleen het document dat je plakt, niet je draaiende code. Het kan niet bepalen of je API daadwerkelijk teruggeeft wat de specificatie beschrijft. Contracttesttools zoals Dredd of Schemathesis doen dat.

Tussen de twee stappen blijft het in dit browsertabblad, in de sessieopslag en niet in het adres van de pagina, tot je Begin opnieuw kiest of het tabblad sluit. Voor het rapport wordt het naar onze server gestuurd, die het controleert en het rapport terugstuurt. Onze server slaat het document zelf niet op en logt het niet: hij telt alleen dat er een controle is uitgevoerd en of het document daarvoor slaagde.

Gerelateerde tools

Tool beschikbaar in andere talen

Handleidingen en toepassingen