https://github.com/salakjs/salak-swagger
Swagger for salak base on koa & joi.
https://github.com/salakjs/salak-swagger
Last synced: 2 months ago
JSON representation
Swagger for salak base on koa & joi.
- Host: GitHub
- URL: https://github.com/salakjs/salak-swagger
- Owner: SalakJS
- License: mit
- Created: 2017-12-19T13:21:57.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2019-03-20T12:28:47.000Z (about 7 years ago)
- Last Synced: 2025-02-23T02:37:38.758Z (over 1 year ago)
- Language: JavaScript
- Size: 13.7 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# salak-swagger
[![NPM version][npm-image]][npm-url]
[![build status][travis-image]][travis-url]
[![David deps][david-image]][david-url]
[![NPM download][download-image]][download-url]
[npm-image]: https://img.shields.io/npm/v/salak-swagger.svg?style=flat-square
[npm-url]: https://npmjs.org/package/salak-swagger
[travis-image]: https://img.shields.io/travis/SalakJS/salak-swagger.svg?style=flat-square
[travis-url]: https://travis-ci.org/SalakJS/salak-swagger
[david-image]: https://img.shields.io/david/SalakJS/salak-swagger.svg?style=flat-square
[david-url]: https://david-dm.org/SalakJS/salak-swagger
[download-image]: https://img.shields.io/npm/dm/salak-swagger.svg?style=flat-square
[download-url]: https://npmjs.org/package/salak-swagger
For generating Swagger 2.0 JSON from router
## API
### generateSwaggerSpec (router, baseSpec, options)
router config:
- prefix: the api path
- modules
baseSpec: Swagger base info
- info: like title, version, description, contact...
- tags: array
options:
- defaultResponses
## Install
```bash
npm install --save salak-swagger
```
## Usage
```javascript
const { generateSwaggerSpec } = require('salak-swagger')
const Joi = require('joi')
const swagger = generateSwaggerSpec({
prefix: '/api',
modules: [
{
name: 'blog',
routes: [
{
path: '/:id',
method: ['GET'],
meta: {
summary: '',
description: '',
tags: ['文章']
},
validate: {
header: Joi.object().keys({
Authorization: Joi.string().required()
}),
params: {
id: Joi.string().required().description('Article id')
},
query: {
id: Joi.string().required()
},
responses: {
200: {
body: Joi.object().keys({
code: Joi.number(),
msg: Joi.string()
}),
headers: Joi.object().keys({
authorization: Joi.string().required()
}).options({
allowUnknown: true
})
}
}
}
}
]
}
]
}, {
info: {
description: 'Blog api',
version: '1.0.0',
title: 'Blog Swagger',
contact: {
name: 'wengeek',
email: 'xxx.xxx@xxx.com'
}
}
})
console.log(swagger)
```
## LICENSE
MIT