JSPM

  • Created
  • Published
  • Downloads 282700
  • Score
    100M100P100Q196859F
  • License Apache-2.0

Spectral ruleset for validating IBM Cloud services

Package Exports

  • @ibm-cloud/openapi-ruleset
  • @ibm-cloud/openapi-ruleset/src/ibm-oas.js
  • @ibm-cloud/openapi-ruleset/src/utils
  • @ibm-cloud/openapi-ruleset/src/utils/index.js
  • @ibm-cloud/openapi-ruleset/test/utils
  • @ibm-cloud/openapi-ruleset/test/utils/index.js

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@ibm-cloud/openapi-ruleset) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

OpenAPI Ruleset

This package contains a custom Spectral ruleset for validating OpenAPI documents. It extends the spectral:oas ruleset, for which it defines custom severity levels. It also contains a number of additional rules based on API design requirements and guidance from IBM Cloud. This is the default ruleset used in the ibm-openapi-validator package.

Installation

npm install @ibm-cloud/openapi-ruleset

Note that installation is only required if using this package programmatically or extending it in a Spectral config file written in JavaScript. It is not required if extending the ruleset in a Spectral config file written in YAML or JSON.

Usage

Spectral config file - YAML or JSON

  • Note - no installation required. Spectral handles the import internally.
# .spectral.yaml
extends: '@ibm-cloud/openapi-ruleset'
rules:
  content-entry-provided: off

Spectral config file - JavaScript

// .spectral.js
const ibmOpenapiRuleset = require('@ibm-cloud/openapi-ruleset');

module.exports = {
  extends: ibmOpenapiRuleset,
  rules: {
    'content-entry-provided': 'off'
  }
};

Programmatically running Spectral

// your-module.js
const ibmOpenapiRuleset = require('@ibm-cloud/openapi-ruleset');
const { Spectral } = require('@stoplight/spectral-core');

function async runSpectral(openapiDocument) {
  const spectral = new Spectral();
  spectral.setRuleset(ibmOpenapiRuleset);
  results = await spectral.run(openapiDocument);
  console.log(results);
}