koa-mapper
is a better and smart router middleware for koa.
npm install koa-mapper
import Koa from 'koa';
import logger from 'koa-logger';
import Mapper from 'koa-mapper';
const app = new Koa();
app.use(logger());
const mapper = new Mapper();
mapper.get('/users/:id', {
params: {
id: { type: 'number' },
info: { type: 'User', in: 'query' }
}
}, (ctx) => {
ctx.body = ctx.params;
});
mapper.define('User', {
id: { type: 'number', required: true },
name: { type: 'string', required: true }
});
app.use(mapper.routes());
app.use(mapper.allowedMethods());
app.listen(3000);
// open http://localhost:3000/users/123?info[id]=456&info[name]=hello
// open http://localhost:3000/openapi.json
MIT