@koa-lite/controller
![npm package](https://img.shields.io/npm/v/@koa-lite/controller/latest.svg)
install
$ yarn add @koa-lite/controller
use
import { Prefix, Tag, Get, Summary, Query } from '@koa-lite/controller'
@Prefix('/ucenter')
export default class User {
@Tag('User')
@Get('/user')
@Summary('User list')
@Query(Joi.object({
name: Joi.string().required().description('name'),
}))
async sms(ctx: BaseContext) {
ctx.body = {}
}
}
import { Controller, InjectHandle } from '@koa-lite/controller'
import User from './controller.ts'
InjectHandle(({ fn }) => fn)
const router = new Controller({
prefix: '/v1',
docs: {
title: '接口文档 - 客户端',
version: 'v1',
description: '业务接口文档 - by Hotchcms',
securities: [{
type: 'headers',
key: 'Authorization',
value: function (data) {
var ret = (data instanceof Object) && data.ret
return /^Bearer\s/.test(ret) ? ret : ''
},
}, {
type: 'headers',
key: 'x-device-id',
value: '10001',
}],
}})
.controllers([ User ])
.get('/', ctx => { ctx.body = 'API V1' })
app.use(router.routes())
api
Prefix()
Get()
Post()
Put()
Delete()
Body
Query
Params
Headers
Middle([])
Summary()
Tag()