OpenAPI-validator

Plak een OpenAPI- of Swagger-document, in JSON of YAML, en deze validator controleert de kernstructuur ervan. Hij bevestigt dat het document parseert, dat het een versieveld openapi of swagger heeft, een info-object met titel en versie en een paths-object, en markeert vervolgens paden die niet met een schuine streep beginnen en onbekende HTTP-methoden. Het is een snelle 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

    De validator parseert het document als JSON en valt terug op YAML-parsing als dat mislukt.

  3. 3

    Controleer de vereiste velden

    Hij bevestigt een versieveld `openapi` of `swagger`, een `info`-object met `title` en `version` en een `paths`-object.

  4. 4

    Scan de paden

    Elk pad wordt gecontroleerd op een leidende schuine streep, en elke operatiesleutel wordt vergeleken met bekende HTTP-methoden.

  5. 5

    Lees het rapport

    Fouten blokkeren de geldigheid; waarschuwingen wijzen op paden zonder leidende schuine streep en onbekende methoden.

Wat deze validator controleert

Controle Resultaat bij falen
Document parseert als JSON of YAML Fout
Veld openapi of swagger aanwezig Fout
info-object aanwezig Fout
info.title aanwezig Fout
info.version aanwezig Fout
paths-object aanwezig Fout
Elk pad begint met / Waarschuwing
Operatiesleutels zijn bekende HTTP-methoden Waarschuwing

Een document dat elke fout doorstaat, wordt gerapporteerd als structureel geldig. Waarschuwingen blokkeren de geldigheid niet; ze wijzen op zaken die het waard zijn om te verbeteren.

Wat het niet controleert

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

  • elke node valideren tegen het officiële JSON Schema voor jouw versie;
  • $ref-verwijzingen oplossen of bevestigen dat de componenten waarnaar ze verwijzen bestaan;
  • controleren of padparameters consistent worden gedeclareerd en gebruikt;
  • verifiëren of operationId-waarden bestaan of uniek zijn;
  • regelnummers voor fouten rapporteren.

Voor die diepgang draai je een speciale CLI-validator zoals redocly lint, swagger-cli validate of spectral lint. Gebruik dit hulpmiddel voor een snelle controle voordat je een specificatie vastlegt (commit) of deelt.

OpenAPI-versies in de praktijk

Versie Opmerkingen
Swagger 2.0 Nog steeds breed uitgerold; gebruikt swagger: "2.0"
OpenAPI 3.0.x De meest voorkomende 3.x-lijn
OpenAPI 3.1.0 Afgestemd op JSON Schema 2020-12

Deze validator accepteert het veld openapi (3.x) of het veld swagger (2.0), dus die slagen allemaal voor de versiecontrole.

Een minimaal document dat slaagt

openapi: 3.0.3
info:
  title: Example API
  version: 1.0.0
paths:
  /users:
    get:
      summary: List users

Elk vereist veld is aanwezig, het enige pad begint met een schuine streep, en get is een bekende methode, dus het 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 kernstructuur: dat het document parseert, een versieveld heeft, een info-object met titel en versie en een paths-object, en waarschuwt voor paden zonder leidende schuine streep en onbekende methoden. Hij valideert niet elke node tegen het officiële JSON Schema. Gebruik daarvoor redocly lint of spectral lint.

Nee. Het volgt geen $ref-verwijzingen en controleert niet of de componenten waarnaar ze verwijzen bestaan. Bundel voor verwijzingen tussen bestanden eerst het document met een tool als redocly bundle of swagger-cli bundle, en draai daarna een volledige validator.

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.

Gerelateerde tools

Tool beschikbaar in andere talen