Request and Response validator for OpenAPI Specification 3.
npm install --save koa-oas3
yarn add koa-oas3
By default, this library will use koa-bodyparser
to parse request body. See config of requestBodyHandler
.
import * as bodyParser from 'koa-bodyparser';
import { oas } from 'koa-oas3';
const app = new Koa();
app.use(bodyParser());
const oasMw = await oas({
file: `${__dirname}/../openapi.yaml`,
endpoint: '/openapi.json',
uiEndpoint: '/'
})
app.use(oasMw);
app.listen(8080);
file
- The absolute path to your Openapi filespec
- javascript object defining the api, either this orfile
must be given.enableUi
(default: true) - Whether to enable serving Openapi JSON and UIendpoint
(default: /openapi.json) - The endpoint for serving Openapi JSONuiEndpoint
:(default: /openapi.html) - The endpoint for serving Openapi UIvalidateResponse
:(default: false) - Validate response against Openapi schemasvalidatePaths
:(default ['/']) - Only endpoints starting with the values specified here will be validatedswaggerUiBundleBasePath
: (default use swagger-ui-dist from unpkg) - swaggerUiAssetPath needed for loading the swagger-uiqsParseOptions: { [key: string]: any}
: Optional - Options to be passed to the query string parse command. Default:{ comma: true }
errorHandler: (error: Error, ctx: Context) => void,
: Optional - custom error hanlder.requestBodyHandler: { [key: string]: koa.Middleware }
: Optional - custom body handler. Defaults:
{
'application/json': bodyParser({
extendTypes: {
json: ['application/json']
},
enableTypes: ['json']
}),
'text/*': bodyParser({
extendTypes: {
text: ['text/*']
},
enableTypes: ['text']
}),
'application/x-www-form-urlencoded': bodyParser({
extendTypes: {
form: ['application/x-www-form-urlencoded']
},
enableTypes: ['form']
})
}