官网地址:egg-swagger-doc-feat
标题demo1
router.js
app.delete(
'/api/A/B/deleteOne/:id',
'A.B.deleteOne',
);
controller/B.js
/**
* @Summary 删除
* @description: 根据id删除
* @Router DELETE /A/B/deleteOne/{id}
* @Request path string *id id
* @request query string parameter 参数
* @Response 200 baseResponse
*/
async deleteResult(ctx: any) {
const { id } = ctx.params;
const { parameter } = ctx.request.query;
...
}
标题demo2
前端调用
`/api/upload?type=${this.state.typeTool}`
router.js
app.delete(
'/api/upload',
'upload',
);
controller/B.js
/**
* @summary 上传附件
* @description 附加上传测试
* @router post /upload
* @request query string *type 文件类型
* @request formData file *file 工具更新包
* @response 200 baseResponse
*/
async uploadTool(ctx: any) {
const { type } = ctx.query;
const { filepath, filename } = ctx.request.files[0];
...
}
标题demo3
前端调用
await request('/api/C/D/unit', {
method: 'POST',
data,
});
controller/D.js
/**
* @Summary 单位创建
* @Router POST /C/D
* @Request body unitBody *body 创建参数
* @Response 200 baseResponse
*/
async create(ctx: any) {
const { body } = ctx.request;
try {
ctx.validate(ctx.rule.unitBody, body);
} catch (err) {
ctx.badRequest({ data: err.errors });
return;
}
...
}
contract/c.js
unitBody: {
unitName: {
type: 'string',
required: true,
example: '单位1',
},
}