egg-openapi-router
@rickyli79/koa-openapi-router plugin for Egg.js.
NOTE: This plugin just for Egg.js, more documentation please visit https://github.com/RickyLi79/koa-openapi-router.
Install
$ npm i --save egg-openapi-router
Usage & configuration
config/plugin.js
Enable plugin in exports.openapiRouter = {
enable: true,
package: 'egg-openapi-router'
}
config/config.{env}.js
Edit your own configurations in - Single config
// config/config.{env}.js exports.openapiRouter = { config: { controllerDir: 'my/api/dir', // default: '' docsDir: path.join(appInfo.baseDir, 'my-openapi-doc'), // default: path.join(appInfo.baseDir, 'openapi-doc') routerPrefix: '/myApi', // default : '' }, };
- Muti Configs
// config/config.{env}.js exports.openapiRouter = { configs: { 'my/api/module/1': { controllerDir: 'module-1', docsDir: path.join(appInfo.baseDir, 'openapi-doc-module-1'), }, 'my/api/module/2': { controllerDir: 'module-2', docsDir: path.join(appInfo.baseDir, 'openapi-doc-module-2'), }, }, };
Examples
openapi-docs:
# openapi-doc/my.oas3.json
openapi: "3.0.0"
paths:
/hello:
get:
responses:
200:
description: ok
config/config.{env}.js
:
edit // config/config.{env}.js
exports.openapiRouter = {
config: {
controllerDir: '',
docsDir: path.join(appInfo.baseDir, 'openapi-doc'),
routerPrefix: '',
},
};
controller:
// app/controller/default.js
const Controller = require('egg').Controller;
class DefaultController extends Controller {
async 'GET /hello'() {
const { ctx } = this;
ctx.status = 200;
ctx.body = 'nihao';
}
}
module.exports = DefaultController;
More documentation please visit https://github.com/RickyLi79/koa-openapi-router.
Example
Here is an example for @rickyli79/json-schema-mock and egg-openapi-router