mirror of
https://github.com/cool-team-official/cool-admin-midway.git
synced 2026-03-23 14:02:37 +00:00
集成swagger
This commit is contained in:
parent
33ec109dda
commit
c52000a4e9
@ -16,6 +16,7 @@
|
|||||||
"@midwayjs/core": "^2.14.0",
|
"@midwayjs/core": "^2.14.0",
|
||||||
"@midwayjs/decorator": "^2.14.0",
|
"@midwayjs/decorator": "^2.14.0",
|
||||||
"@midwayjs/orm": "^2.14.0",
|
"@midwayjs/orm": "^2.14.0",
|
||||||
|
"@midwayjs/swagger": "^1.3.0",
|
||||||
"@midwayjs/view-nunjucks": "^2.14.0",
|
"@midwayjs/view-nunjucks": "^2.14.0",
|
||||||
"@midwayjs/web": "^2.13.4",
|
"@midwayjs/web": "^2.13.4",
|
||||||
"egg": "^2.33.1",
|
"egg": "^2.33.1",
|
||||||
@ -41,6 +42,7 @@
|
|||||||
"cross-env": "^7.0.3",
|
"cross-env": "^7.0.3",
|
||||||
"jest": "^27.4.3",
|
"jest": "^27.4.3",
|
||||||
"mwts": "^1.3.0",
|
"mwts": "^1.3.0",
|
||||||
|
"swagger-ui-dist": "^4.1.3",
|
||||||
"ts-jest": "^27.1.0",
|
"ts-jest": "^27.1.0",
|
||||||
"typescript": "^4.5.2"
|
"typescript": "^4.5.2"
|
||||||
},
|
},
|
||||||
|
|||||||
@ -11,7 +11,11 @@ export default (app: Application) => {
|
|||||||
// 模块描述
|
// 模块描述
|
||||||
description: '基础的权限管理功能,包括登录,权限校验',
|
description: '基础的权限管理功能,包括登录,权限校验',
|
||||||
// 中间件
|
// 中间件
|
||||||
globalMiddlewares: ['baseAuthorityMiddleware', 'baseLogMiddleware'],
|
globalMiddlewares: [
|
||||||
|
'baseAuthorityMiddleware',
|
||||||
|
'baseLogMiddleware',
|
||||||
|
'baseSwaggerMiddleware',
|
||||||
|
],
|
||||||
// jwt 生成解密token的
|
// jwt 生成解密token的
|
||||||
jwt: {
|
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 { CoolController, BaseController, CoolUrlTag } from '@cool-midway/core';
|
||||||
import { DemoGoodsEntity } from '../../entity/goods';
|
import { DemoGoodsEntity } from '../../entity/goods';
|
||||||
import { DemoGoodsService } from '../../service/goods';
|
import { DemoGoodsService } from '../../service/goods';
|
||||||
@ -28,12 +28,13 @@ export class DemoAppGoodsController extends BaseController {
|
|||||||
demoGoodsService: DemoGoodsService;
|
demoGoodsService: DemoGoodsService;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 请求所有数据
|
* 请求所有
|
||||||
|
* @param name 名称
|
||||||
* @returns
|
* @returns
|
||||||
*/
|
*/
|
||||||
@CoolUrlTag('ignoreToken')
|
@CoolUrlTag('ignoreToken')
|
||||||
@Get('/all', { summary: '获得所有' })
|
@Get('/all', { summary: '获得所有' })
|
||||||
async all() {
|
async all(@Query() name: string, @Query() age: number) {
|
||||||
return this.ok(await this.demoGoodsService.all());
|
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',
|
charset: 'utf8mb4',
|
||||||
// 驱动
|
// 驱动
|
||||||
driver: require('mysql2'),
|
driver: require('mysql2'),
|
||||||
// 设置时区
|
|
||||||
timezone: '+8:00',
|
|
||||||
};
|
};
|
||||||
|
|
||||||
config.logger = {
|
config.logger = {
|
||||||
|
|||||||
@ -20,8 +20,6 @@ export default (appInfo: EggAppInfo) => {
|
|||||||
charset: 'utf8mb4',
|
charset: 'utf8mb4',
|
||||||
// 驱动
|
// 驱动
|
||||||
driver: require('mysql2'),
|
driver: require('mysql2'),
|
||||||
// 设置时区
|
|
||||||
timezone: '+8:00',
|
|
||||||
};
|
};
|
||||||
|
|
||||||
config.logger = {
|
config.logger = {
|
||||||
|
|||||||
@ -4,6 +4,7 @@ import { Application } from 'egg';
|
|||||||
import * as view from '@midwayjs/view-nunjucks';
|
import * as view from '@midwayjs/view-nunjucks';
|
||||||
import * as orm from '@midwayjs/orm';
|
import * as orm from '@midwayjs/orm';
|
||||||
import * as cool from '@cool-midway/core';
|
import * as cool from '@cool-midway/core';
|
||||||
|
import * as swagger from '@midwayjs/swagger';
|
||||||
// import * as wxpay from '@cool-midway/wxpay';
|
// import * as wxpay from '@cool-midway/wxpay';
|
||||||
// import * as oss from '@cool-midway/oss';
|
// import * as oss from '@cool-midway/oss';
|
||||||
// import * as redis from '@cool-midway/redis';
|
// import * as redis from '@cool-midway/redis';
|
||||||
@ -18,6 +19,11 @@ import * as cool from '@cool-midway/core';
|
|||||||
view,
|
view,
|
||||||
// 必须,不可移除, https://typeorm.io 打不开? https://typeorm.biunav.com/zh/
|
// 必须,不可移除, https://typeorm.io 打不开? https://typeorm.biunav.com/zh/
|
||||||
orm,
|
orm,
|
||||||
|
// swagger文档 访问地址 http://127.0.0.1:8001/swagger-ui/index.html
|
||||||
|
{
|
||||||
|
component: swagger,
|
||||||
|
enabledEnvironment: ['local'],
|
||||||
|
},
|
||||||
// 必须,不可移除, cool-admin 官方组件 https://www.cool-js.com
|
// 必须,不可移除, cool-admin 官方组件 https://www.cool-js.com
|
||||||
cool,
|
cool,
|
||||||
// oss插件,需要到后台配置之后才有用,默认是本地上传
|
// oss插件,需要到后台配置之后才有用,默认是本地上传
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user