Online Tool Store Online Tool Store

API Contract Checker

Vergelijk OpenAPI 3.x-specs op breaking, veilige, security- en allOf/oneOf-wijzigingen, met bestandsupload en 3.1-ondersteuning - 100% in je browser.

🔒 Deze tool werkt volledig in je browser. Je bestanden worden nooit naar een server geüpload.

Browsertool

API Contract Checker

Elk vak accepteert OpenAPI 3.x als JSON of YAML — plak het, sleep een bestand op het vak, of gebruik Bestand uploaden. Er wordt niets naar een server geüpload — het vergelijken gebeurt volledig in je browser. Druk op Ctrl+Enter om direct te vergelijken.

Hoe het werkt

  1. Plak je base (oude) en revision (nieuwe) OpenAPI 3.x-spec in de twee vakken - of sleep een .json-/.yaml-/.yml-bestand op een van beide, of gebruik de knop Upload file. JSON en YAML werken allebei, en de formaten hoeven niet overeen te komen.
  2. Klik op Compare, blijf typen (het draait automatisch opnieuw na een korte pauze), of druk op Ctrl+Enter om direct te vergelijken.
  3. Resultaten worden gegroepeerd in breaking changes, safe/additive changes en overige wijzigingen - inclusief security-, deprecation-, server- en allOf/oneOf/anyOf-wijzigingen - met bovenaan een aantal per groep. Klik op een aantalbadge om die groep te verbergen of te tonen.
  4. Kies een rapportformaat (Text, Markdown of JSON) en klik op Download report om het volledige diff op te slaan.

FAQ

Wat controleert deze tool precies?

Je plakt (of uploadt) een base (oude) en een revision (nieuwe) OpenAPI 3.x-specificatie, en de tool doorloopt elk path, parameter, request body, response, security requirement en schema in beide, en rapporteert vervolgens wat er is veranderd: toegevoegde of verwijderde endpoints, wijzigingen in verplichte parameters en requestvelden, versmalde types of enums, verdwenen responsevelden of statuscodes, wijzigingen in security requirements en wijzigingen in allOf/oneOf/anyOf-samenstelling.

Wat geldt als een "breaking" wijziging?

Alles wat een bestaande client kan laten stoppen met werken: een verwijderd endpoint, een parameter of requestveld dat verplicht is geworden, een verwijderd responseveld of statuscode, een veld dat niet langer gegarandeerd wordt in een response, of een type/enum dat smaller is geworden (inclusief de nullable type-arrays van OpenAPI 3.1, bijvoorbeeld het verwijderen van "null" uit `["string", "null"]`). Nieuwe endpoints, nieuwe optionele velden en nieuwe responsevelden zijn additief en worden apart getoond als veilig.

Controleert het ook security scheme- en deprecation-wijzigingen?

Ja. Toegevoegde/verwijderde security requirements (globaal en per operatie), wijzigingen in security scheme-definities (bijvoorbeeld een API-key die verhuist van een header naar een queryparameter), nieuw gedepreceerde operaties en wijzigingen in server-URL's worden allemaal gerapporteerd - als informatieve bevindingen in plaats van breaking of safe, omdat (in lijn met de standaard ernst die oasdiff zelf aan deze checks toekent) geen van beide richtingen universeel goed of fout is; jij bepaalt of het relevant is voor jouw API.

Ondersteunt het allOf-, oneOf- en anyOf-schemasamenstelling?

Ja. `allOf`-leden worden opgelost en samengevoegd vóór het vergelijken, zodat een verplicht veld dat diep in een samengesteld schema is toegevoegd, nog steeds wordt opgemerkt. `oneOf`/`anyOf`-variantsets worden vergeleken en gemarkeerd als informatief wanneer een variant wordt toegevoegd of verwijderd, omdat of die specifieke wijziging breaking is afhangt van hoe jouw clients tussen varianten onderscheid maken.

Ondersteunt het Swagger 2.0?

Nee - dit vergelijkt alleen OpenAPI 3.x-specs. Swagger 2.0 (het oudere formaat) structureert parameters en bodies anders, dus dezelfde regels toepassen zou verkeerde resultaten geven. Het plakken van een Swagger 2.0-document geeft in plaats daarvan een duidelijke foutmelding, geen stilzwijgend onjuist diff.

Wordt mijn spec ergens naartoe verstuurd?

Nee. Zowel het parsen als het vergelijken gebeurt in je browser - je spec verlaat nooit je apparaat, in tegenstelling tot de meeste andere OpenAPI diff-tools, die de upload op hun eigen server verwerken, zelfs als ze zeggen dat ze het niet opslaan. Dit geldt ook wanneer je de upload/drag-and-drop-optie gebruikt: het bestand wordt lokaal gelezen, nooit verzonden.

Wat controleert het niet?

Het vergelijkt `application/json` request- en responsebodies, wat de grote meerderheid van REST-API's dekt, maar het beoordeelt geen andere content types, responseheaders, beschrijvingen of voorbeelden. Een `$ref` die buiten het document wijst (een apart bestand of URL) wordt gerapporteerd als onoplosbaar in plaats van stilzwijgend overgeslagen.

Kan ik YAML plakken in plaats van JSON, of een bestand uploaden?

Ja, beide kan. Elk vak accepteert JSON of YAML onafhankelijk en detecteert welke je hebt gebruikt, zodat je een JSON-basisspec kunt vergelijken met een YAML-revisie of andersom. Je kunt ook een .json-/.yaml-/.yml-bestand op een van de vakken slepen, of de knop Upload file gebruiken - het bestand wordt in je browser gelezen en nooit ergens geüpload.

Ondersteunt het OpenAPI 3.1, niet alleen 3.0?

Het werkt met elk document met een "openapi": "3.x"-veld en een "paths"-object, wat zowel 3.0 als 3.1 dekt - inclusief de array-vorm van `type` in 3.1 (bijvoorbeeld `["string", "null"]`) - en wijst alleen documenten af die eruitzien als Swagger 2.0.

Kan ik het diff exporteren als JSON, Markdown of HTML?

Text (.txt), Markdown (.md) en JSON (.json) worden allemaal ondersteund - kies er een uit het formaat-dropdown naast Download report voordat je downloadt. De JSON-export bevat de volledige lijst met bevindingen plus aantallen per ernst, zodat het naar een ander script (bijvoorbeeld een CI-check) kan worden doorgesluisd als je dat nodig hebt.

Werkt het bij, terwijl ik typ, of moet ik op Compare klikken?

Beide werken: klik op Compare voor een directe herberekening, of blijf gewoon typen - na een korte pauze wordt het automatisch opnieuw vergeleken. Je kunt ook Ctrl+Enter (Cmd+Enter op Mac) indrukken vanuit een van beide vakken om direct te vergelijken zonder te wachten.

Hoe wij ons verhouden

FunctieOnline Tool StoreoasdiffSpecShield
Vergelijkt je spec volledig in je browser Ja - niets verlaat je apparaat, inclusief geüploade bestandenNee - verwerkt op hun serverNee - verwerkt op hun server, daarna weggegooid
Accepteert OpenAPI 3.x als JSON of YAML, geplakt of geüpload Ja - plakken, slepen-en-neerzetten, of Upload filePlakken of uploadenPlakken of uploaden
Groepeert resultaten in breaking, safe en overige wijzigingen Ja, met klikbare filterbadgesJa, via een speciale Breaking Changes-modusJa, dezelfde drie groepen
Ondersteunt allOf/oneOf/anyOf-schemasamenstelling Ja - allOf wordt samengevoegd vóór het vergelijken; oneOf/anyOf-variantwijzigingen worden gemarkeerdNiet gedocumenteerd op de publieke diff-paginaNiet gedocumenteerd
Signaleert wijzigingen in security, deprecation en server-URL Ja, alle drie (getoond als informatief, niet breaking/safe)Security en deprecation, via de onderliggende engine van oasdiffNiet gedocumenteerd
Gratis, geen account nodig JaJa, voor het basisdiffJa, voor het basisdiff

Handig voor een snelle, privé controle op breaking changes voordat je een nieuwe API-versie uitbrengt - vooral wanneer de spec zelf gevoelig is en je liever niet die, of een geüpload bestand, naar een externe server stuurt.

Ontdek gerelateerde tools

Deze tool insluiten

Plak dit op je eigen site — het blijft gratis, en elk bestand blijft in de browser van je bezoeker, niet bij jou of bij ons.