npm:@rhoas/openapi-validator | Skypack
You need to enable JavaScript to run this app.
@rhoas/openapi-validator
RHOAS OpenAPI Validator
Usage no npm install needed!
<script type="module">
import rhoasOpenapiValidator from 'https://cdn.skypack.dev/@rhoas/openapi-validator';
</script>
README
RHOAS OpenAPI Validator
A CLI for validating OpenAPI specifications against the RHOAS API Guidelines.
Development
NOTE: This project uses Yarn workspaces for easier development.
Install dependencies:
yarn install
Build:
yarn build
Running examples
Validate OpenAPI files using the uncompiled TypeScript CLI:
yarn validate-dev ./examples/openapi-valid.yaml
Using
It is recommended to use npx
to validate your documents to ensure you use the latest validation rules:
npx @rhoas/openapi-validator validate ./path/to/openapi.yaml
Rules
The RHOAS ruleset extends the Spectral built-in "oas" ruleset (except operation-tags
, openapi-tags
). You can see the full list of rules from that ruleset here
oas3minimum
OpenAPI schemas should be a minimum of v3.
openapi: 3.0
Recommended : Yes
Severity : warning
servers-config
The servers
OpenAPI object must be defined and must specify at minimum the following URLs:
servers:
- url: https://api.openshift.com
- url: https://api.stage.openshift.com
- url: http://localhost:8000
- url: /
Recommended : Yes
Severity : warning
info-license-apache2.0:
The info.license.name
field must be "Apache 2.0".
info:
license:
name: 'Apache 2.0'
Recommended : Yes
Severity : warning
info-license-apache2.0-url:
The info.license.url
field must have the correct link for Apache 2.0.
info:
license:
url: 'https://www.apache.org/licenses/LICENSE-2.0.html'
Recommended : Yes
Severity : warning
invalid-path-regexp
All paths must match the specified regular expression: /api/([a-z_]*){1,}(/v[0-9]*(alpha|beta)?)(/{?[a-z_]*}?){1,}
quot;.
The first segment must be /api
The second segment can only contain alphabetical characters and underscores "_"
The third segment must specify the API version. This can be a major version such as v1
or a channel-version such as v1beta
, v1alpha
.
All following segments must follow camel_case
and can only contain alphabetical characters.
Recommended : Yes
Severity : warning
invalid-response-media-type
The content type for all responses must be application/json
.
Recommended : Yes
Severity : error
invalid-error-response-object
All error response bodies must reference #/components/Schemas/Error
Recommended : Yes
Severity : error
invalid-object-resource-schema
All API response bodies must be an object
with three required properties:
type: object
required: [id, kind, href]
properties:
id:
type: string
kind:
type: string
href:
type: string
Recommended : Yes
Severity : error
schema-name-camel-case
All JSON schema objects defined in components.schemas
must follow CamelCase
.
Recommended : Yes
Severity : warning
properties-snake-case
All JSON schema properties defined must follow camel_case
.
Recommended : Yes
Severity : error
invalid-error-schema
components.schema
MUST have a valid Error
object.
Error:
type: object
required: [id, kind, href, code, reason]
properties:
id:
type: string
kind:
type: string
href:
type: string
code:
type: string
reason:
type: string
Recommended : Yes
Severity : warning
invalid-object-schema
components.schema
MUST have a valid ObjectReference
object.
ObjectReference:
type: object
required: [id, kind, href]
properties:
id:
type: string
kind:
type: string
href:
type: string
Recommended : Yes
Severity : warning
invalid-list-schema
components.schema
MUST have a valid List
object.
List:
required:
- kind
- page
- size
- total
- items
type: object
properties:
items:
type: array
kind:
type: string
page:
type: integer
size:
type: integer
total:
type: integer
Recommended : Yes
Severity : warning
Details
Updated
July 6, 2021
Created
July 5, 2021
Package Security
ES Module Entrypoint
Info
Export Map
Info
added
Keywords
added
License
added
README
added
Repository URL
TypeScript Types
Info
License
Apache-2.0
Dependencies
5