Security News
PyPI Now Supports iOS and Android Wheels for Mobile Python Development
PyPI now supports iOS and Android wheels, making it easier for Python developers to distribute mobile packages.
openapi-enforcer
Advanced tools
Library for validating, parsing, and formatting data against open api schemas.
Tools for using the Open API Specification (OAS)
Supports OAS 2.0 (formerly Swagger) and OAS 3.x.x
npm install openapi-enforcer
Use the Enforcer to load and resolve all $ref values and then to validate the complete document.
const Enforcer = require('openapi-enforcer')
async function run () {
const [openapi, error, warning] = await Enforcer('./path/to/openapi.yml', {
fullResult: true
})
if (error !== undefined) console.error(error)
if (warning !== undefined) console.warn(warning)
if (openapi !== undefined) console.log('Document is valid')
}
run.catch(console.error)
const Enforcer = require('openapi-enforcer')
async function run () {
// Because we don't specify `fullResult: true`, any errors will throw an exception and
// warnings will be logged to the console.
const openapi = await Enforcer('./path/to/openapi.yml')
// If the request is valid then the req object will contain the parsed and validated request.
// If it is invalid then the error will contain details about what was wrong with the
// request and these details are safe to return to the client that made the request.
const [ req, error ] = openapi.request({
method: 'POST',
path: '/tasks',
// the body should be parsed by a JSON.parse() prior to passing in (if applicable).
body: { task: 'Buy Milk', quantity: 2 }
})
// You can use the req.operation property to look at the properties from your OpenAPI document.
// A good use of this is to look at the operationId you defined there to determine which path
// is being used to handle the request.
if (req.operaton.operationId === 'my-operation-id') {
// ... additional request processing
}
}
run.catch(console.error)
const Enforcer = require('openapi-enforcer')
async function run () {
const openapi = await Enforcer('./path/to/openapi.yml')
const [ req ] = openapi.request({
method: 'POST',
path: '/tasks',
// the body should be parsed by a JSON.parse() prior to passing in (if applicable).
body: { task: 'Buy Milk', quantity: 2 }
})
const body = { id: 1, task: 'Buy Milk', quantity: 2, dateCompleted: null }
const headers = {}
// This will validate the response code, body, and headers. It will also correctly serialize
// the body and headers for sending to the client that made the request. Using this method
// you'll never send back a response that does not match what your OpenAPI document defines.
const [ res, error ] = req.response(200, body, headers)
console.log(res.body, res.headers)
}
run.catch(console.error)
1.17.0
Examples Warn of Additional Properties
For a schema, the default behavior of an object is to allow additional properties. This can be problematic when examples have additional properties that the schema does not define. Now there is a global config option Enforcer.config.examplesWarnAdditionalProperty
that defaults to true
and will warn of examples with additional properties. To disable this behavior set the global config property to false
.
FAQs
Library for validating, parsing, and formatting data against open api schemas.
The npm package openapi-enforcer receives a total of 0 weekly downloads. As such, openapi-enforcer popularity was classified as not popular.
We found that openapi-enforcer demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
PyPI now supports iOS and Android wheels, making it easier for Python developers to distribute mobile packages.
Security News
Create React App is officially deprecated due to React 19 issues and lack of maintenance—developers should switch to Vite or other modern alternatives.
Security News
Oracle seeks to dismiss fraud claims in the JavaScript trademark dispute, delaying the case and avoiding questions about its right to the name.