$ yarn add @koa-lite/controller
real demo: hotchcms
$ npm install$ npm start
// controller.tsimport{Prefix,Tag,Get,Summary,Query}from'@koa-lite/controller'
@Prefix('/ucenter')exportdefaultclassUser{
@Tag('User')
@Get('/user')// or request.get('/user'), request('get', '/user')
@Summary('User list')
@Query(Joi.object({name: Joi.string().required().description('name'),}))// check.query()asyncsms(ctx: BaseContext){ctx.body={}}}// router.tsimport{Controller,InjectHandle}from'@koa-lite/controller'importUserfrom'./controller.ts'// 包装函数InjectHandle(({ fn })=>fn)constrouter=newController({prefix: '/v1',docs: {title: '接口文档 - 客户端',version: 'v1',description: '业务接口文档 - by Hotchcms',securities: [{type: 'headers',key: 'Authorization',// 自动注入token等信息value: function(data){varret=(datainstanceofObject)&&data.retreturn/^Bearer\s/.test(ret) ? ret : ''},},{type: 'headers',key: 'x-device-id',value: '10001',}],}}).controllers([User]).get('/',ctx=>{ctx.body='API V1'})// app.tsapp.use(router.routes())Prefix()Get()Post()Put()Delete()BodyQueryParamsHeadersMiddle([])Summary()Tag()