https://github.com/bendrucker/swagger-parameters
Validate and parse request data using swagger parameters arrays
https://github.com/bendrucker/swagger-parameters
Last synced: about 1 year ago
JSON representation
Validate and parse request data using swagger parameters arrays
- Host: GitHub
- URL: https://github.com/bendrucker/swagger-parameters
- Owner: bendrucker
- License: mit
- Created: 2016-08-02T02:11:02.000Z (almost 10 years ago)
- Default Branch: master
- Last Pushed: 2019-08-19T23:36:54.000Z (almost 7 years ago)
- Last Synced: 2024-11-17T17:28:28.715Z (over 1 year ago)
- Language: JavaScript
- Homepage:
- Size: 12.7 KB
- Stars: 9
- Watchers: 3
- Forks: 2
- Open Issues: 2
-
Metadata Files:
- Readme: readme.md
- License: license
Awesome Lists containing this project
README
# swagger-parameters [](https://travis-ci.org/bendrucker/swagger-parameters) [](https://greenkeeper.io/)
> Validate and parse request data using swagger parameters arrays
swagger-parameters turns your [Swagger/OpenAPI parameters](https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md#parameterObject) into a full JSON schema that can be used to parse and validate HTTP request data. The library is fully server-agnostic. You're responsible for converting your request paths and queries into key-value data. swagger-parameters will perform validation and type coercion and return a copy of your parsed data (if valid).
## Install
```
$ npm install --save swagger-parameters
```
## Usage
```js
var Parser = require('swagger-parameters')
// var Schema = require('swagger-parameters/schema')
// /users/{id}/orders?page={page}
var parse = Parser([
{
name: 'id',
in: 'path',
type: 'integer',
required: true
},
{
name: 'page',
in: 'query',
default: 1,
type: 'integer'
},
{
name: 'token',
in: 'header',
required: true
}
])
parse({
path: {id: '1'},
query: {page: '5'},
headers: {token: 't'}
}, function (err, data) {
if (err) throw err
console.log(data)
//=> {path: {id: 1}, query: {page: 5}, headers: {token: 't'}}
})
```
## API
#### `Parser(parameters, [data])` -> `function`
##### parameters
Type: `array[object]`
Default: `[]`
An array of Swagger/OpenAPI [parameter definition](https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md#parameters-definitions-object).
##### data
*Required*
Type: `object`
Data that can be resolved by `$ref` parameters.
#### `parse(data, callback)` -> `undefined`
##### data
*Required*
Type: `object`
A `{path, query, headers}` object, each with key-value data.
##### callback
*Required*
Type: `function`
Arguments: `err, data`
A callback to be called with a validation error or a parsed copy of the data. Validation errors will have an `errors` property which is an array of JSON schema error objects from [ajv](https://github.com/epoberezkin/ajv).
## License
MIT © [Ben Drucker](http://bendrucker.me)