mirror of
https://github.com/cool-team-official/cool-admin-midway.git
synced 2026-03-19 04:03:50 +00:00
集成swagger
This commit is contained in:
parent
33ec109dda
commit
c52000a4e9
@ -16,6 +16,7 @@
|
||||
"@midwayjs/core": "^2.14.0",
|
||||
"@midwayjs/decorator": "^2.14.0",
|
||||
"@midwayjs/orm": "^2.14.0",
|
||||
"@midwayjs/swagger": "^1.3.0",
|
||||
"@midwayjs/view-nunjucks": "^2.14.0",
|
||||
"@midwayjs/web": "^2.13.4",
|
||||
"egg": "^2.33.1",
|
||||
@ -41,6 +42,7 @@
|
||||
"cross-env": "^7.0.3",
|
||||
"jest": "^27.4.3",
|
||||
"mwts": "^1.3.0",
|
||||
"swagger-ui-dist": "^4.1.3",
|
||||
"ts-jest": "^27.1.0",
|
||||
"typescript": "^4.5.2"
|
||||
},
|
||||
|
||||
@ -11,7 +11,11 @@ export default (app: Application) => {
|
||||
// 模块描述
|
||||
description: '基础的权限管理功能,包括登录,权限校验',
|
||||
// 中间件
|
||||
globalMiddlewares: ['baseAuthorityMiddleware', 'baseLogMiddleware'],
|
||||
globalMiddlewares: [
|
||||
'baseAuthorityMiddleware',
|
||||
'baseLogMiddleware',
|
||||
'baseSwaggerMiddleware',
|
||||
],
|
||||
// jwt 生成解密token的
|
||||
jwt: {
|
||||
// 注意: 最好重新修改,防止破解
|
||||
|
||||
27
src/app/modules/base/middleware/swagger.ts
Normal file
27
src/app/modules/base/middleware/swagger.ts
Normal file
@ -0,0 +1,27 @@
|
||||
import { Provide } from '@midwayjs/decorator';
|
||||
import { IWebMiddleware, IMidwayWebNext } from '@midwayjs/web';
|
||||
import { Context } from 'egg';
|
||||
import * as _ from 'lodash';
|
||||
|
||||
/**
|
||||
* swagger
|
||||
*/
|
||||
@Provide()
|
||||
export class BaseSwaggerMiddleware implements IWebMiddleware {
|
||||
resolve() {
|
||||
return async (ctx: Context, next: IMidwayWebNext) => {
|
||||
const { url } = ctx;
|
||||
await next();
|
||||
if (_.startsWith(url, '/swagger-ui/json')) {
|
||||
ctx.body.components.securitySchemes = {
|
||||
Authorization: {
|
||||
type: 'apiKey',
|
||||
name: 'Authorization',
|
||||
in: 'header',
|
||||
},
|
||||
};
|
||||
ctx.body.security = [{ Authorization: [] }];
|
||||
}
|
||||
};
|
||||
}
|
||||
}
|
||||
@ -1,4 +1,4 @@
|
||||
import { Get, Inject, Provide } from '@midwayjs/decorator';
|
||||
import { Get, Inject, Provide, Query } from '@midwayjs/decorator';
|
||||
import { CoolController, BaseController, CoolUrlTag } from '@cool-midway/core';
|
||||
import { DemoGoodsEntity } from '../../entity/goods';
|
||||
import { DemoGoodsService } from '../../service/goods';
|
||||
@ -28,12 +28,13 @@ export class DemoAppGoodsController extends BaseController {
|
||||
demoGoodsService: DemoGoodsService;
|
||||
|
||||
/**
|
||||
* 请求所有数据
|
||||
* 请求所有
|
||||
* @param name 名称
|
||||
* @returns
|
||||
*/
|
||||
@CoolUrlTag('ignoreToken')
|
||||
@Get('/all', { summary: '获得所有' })
|
||||
async all() {
|
||||
async all(@Query() name: string, @Query() age: number) {
|
||||
return this.ok(await this.demoGoodsService.all());
|
||||
}
|
||||
}
|
||||
|
||||
23
src/app/modules/demo/controller/app/swagger.ts
Normal file
23
src/app/modules/demo/controller/app/swagger.ts
Normal file
@ -0,0 +1,23 @@
|
||||
import { Get, Provide, Query } from '@midwayjs/decorator';
|
||||
import { CoolController, BaseController } from '@cool-midway/core';
|
||||
import { CreateApiDoc } from '@midwayjs/swagger';
|
||||
|
||||
/**
|
||||
* swagger
|
||||
*/
|
||||
@Provide()
|
||||
@CoolController(null, {
|
||||
tagName: 'swagger 文档',
|
||||
description: 'swagger 文档演示',
|
||||
})
|
||||
export class DemoSwaggerController extends BaseController {
|
||||
@CreateApiDoc()
|
||||
.summary('hello 接口')
|
||||
.description('hello 接口功能描述')
|
||||
.param('姓名')
|
||||
.build()
|
||||
@Get('/hello')
|
||||
async hello(@Query() name: string) {
|
||||
return this.ok(`你好:${name}!!`);
|
||||
}
|
||||
}
|
||||
@ -20,8 +20,6 @@ export default (appInfo: EggAppInfo) => {
|
||||
charset: 'utf8mb4',
|
||||
// 驱动
|
||||
driver: require('mysql2'),
|
||||
// 设置时区
|
||||
timezone: '+8:00',
|
||||
};
|
||||
|
||||
config.logger = {
|
||||
|
||||
@ -20,8 +20,6 @@ export default (appInfo: EggAppInfo) => {
|
||||
charset: 'utf8mb4',
|
||||
// 驱动
|
||||
driver: require('mysql2'),
|
||||
// 设置时区
|
||||
timezone: '+8:00',
|
||||
};
|
||||
|
||||
config.logger = {
|
||||
|
||||
@ -4,6 +4,7 @@ import { Application } from 'egg';
|
||||
import * as view from '@midwayjs/view-nunjucks';
|
||||
import * as orm from '@midwayjs/orm';
|
||||
import * as cool from '@cool-midway/core';
|
||||
import * as swagger from '@midwayjs/swagger';
|
||||
// import * as wxpay from '@cool-midway/wxpay';
|
||||
// import * as oss from '@cool-midway/oss';
|
||||
// import * as redis from '@cool-midway/redis';
|
||||
@ -18,6 +19,11 @@ import * as cool from '@cool-midway/core';
|
||||
view,
|
||||
// 必须,不可移除, https://typeorm.io 打不开? https://typeorm.biunav.com/zh/
|
||||
orm,
|
||||
// swagger文档 访问地址 http://127.0.0.1:8001/swagger-ui/index.html
|
||||
{
|
||||
component: swagger,
|
||||
enabledEnvironment: ['local'],
|
||||
},
|
||||
// 必须,不可移除, cool-admin 官方组件 https://www.cool-js.com
|
||||
cool,
|
||||
// oss插件,需要到后台配置之后才有用,默认是本地上传
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user