feat: 优化swagger类型
parent
a9d099bb17
commit
2902d63702
|
|
@ -0,0 +1,40 @@
|
|||
version: '3'
|
||||
|
||||
services:
|
||||
server:
|
||||
image: git.dev.juetan.cn/juetan/server:latest
|
||||
networks:
|
||||
- public
|
||||
deploy:
|
||||
mode: replicated
|
||||
replicas: 1
|
||||
placement:
|
||||
constraints: [node.role == manager]
|
||||
labels:
|
||||
- traefik.enable=true
|
||||
- traefik.http.routers.nest.rule=Host(`nest.dev.juetan.cn`) && PathPrefix(`/api`, `/upload`)
|
||||
- traefik.http.routers.nest.entrypoints=websecure
|
||||
- traefik.http.routers.nest.tls=true
|
||||
- traefik.http.routers.nest.tls.certresolver=acmer
|
||||
- traefik.http.services.nest1.loadbalancer.server.port=3030
|
||||
|
||||
web:
|
||||
image: git.dev.juetan.cn/juetan/web:latest
|
||||
networks:
|
||||
- public
|
||||
deploy:
|
||||
mode: replicated
|
||||
replicas: 1
|
||||
placement:
|
||||
constraints: [node.role == manager]
|
||||
labels:
|
||||
- traefik.enable=true
|
||||
- traefik.http.routers.vue.rule=Host(`nest.dev.juetan.cn`)
|
||||
- traefik.http.routers.vue.entrypoints=websecure
|
||||
- traefik.http.routers.vue.tls=true
|
||||
- traefik.http.routers.vue.tls.certresolver=acmer
|
||||
- traefik.http.services.vue1.loadbalancer.server.port=80
|
||||
|
||||
networks:
|
||||
public:
|
||||
external: true
|
||||
|
|
@ -37,20 +37,38 @@ export function addResponseWrapper(doc: OpenAPIObject) {
|
|||
continue;
|
||||
}
|
||||
const schema = json.schema;
|
||||
// json.schema = {
|
||||
// allOf: [
|
||||
// {
|
||||
// $ref: '#/components/schemas/Response',
|
||||
// },
|
||||
// {
|
||||
// type: 'object',
|
||||
// properties: {
|
||||
// data: schema,
|
||||
// },
|
||||
// required: ['data'],
|
||||
// },
|
||||
// ],
|
||||
// };
|
||||
json.schema = {
|
||||
allOf: [
|
||||
{
|
||||
$ref: '#/components/schemas/Response',
|
||||
type: 'object',
|
||||
properties: {
|
||||
code: {
|
||||
type: 'integer',
|
||||
description: '状态码',
|
||||
example: 2000,
|
||||
format: 'int32',
|
||||
},
|
||||
{
|
||||
type: 'object',
|
||||
properties: {
|
||||
data: schema,
|
||||
},
|
||||
required: ['data'],
|
||||
message: {
|
||||
type: 'string',
|
||||
description: '提示信息',
|
||||
example: '请求成功',
|
||||
},
|
||||
],
|
||||
};
|
||||
data: schema,
|
||||
},
|
||||
required: ['code', 'message'],
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -90,6 +90,41 @@ export class ConfigService {
|
|||
return this.config.get('DB_TYPE', 'sqlite');
|
||||
}
|
||||
|
||||
/**
|
||||
* MySQL数据库主机
|
||||
*/
|
||||
get sqlHost(): string {
|
||||
return this.config.get('DB_MYSQL_HOST', 'localhost');
|
||||
}
|
||||
|
||||
/**
|
||||
* MySQL数据库端口
|
||||
*/
|
||||
get sqlPort(): number {
|
||||
return Number(this.config.get('DB_MYSQL_PORT', 3306));
|
||||
}
|
||||
|
||||
/**
|
||||
* MySQL数据库用户
|
||||
*/
|
||||
get sqlUser(): string {
|
||||
return this.config.get('DB_MYSQL_USERNAME', 'root');
|
||||
}
|
||||
|
||||
/**
|
||||
* MySQL数据库密码
|
||||
*/
|
||||
get sqlPass(): string {
|
||||
return this.config.get('DB_MYSQL_PASSWORD', '');
|
||||
}
|
||||
|
||||
/**
|
||||
* MySQL数据库名称
|
||||
*/
|
||||
get sqlDatabase(): string {
|
||||
return this.config.get('DB_MYSQL_DATABASE', 'appnify');
|
||||
}
|
||||
|
||||
/**
|
||||
* SQLite数据库文件路径
|
||||
* @default './content/db.sqlite'
|
||||
|
|
|
|||
|
|
@ -23,6 +23,17 @@ import { RequestMiddleware } from './suscribers/request.middleware';
|
|||
};
|
||||
}
|
||||
if (config.dbType === 'mysql') {
|
||||
return {
|
||||
type: config.dbType,
|
||||
host: config.sqlHost,
|
||||
port: config.sqlPort,
|
||||
username: config.sqlUser,
|
||||
password: config.sqlPass,
|
||||
database: config.sqlDatabase,
|
||||
synchronize: true,
|
||||
autoLoadEntities: true,
|
||||
namingStrategy: new SnakeNamingStrategy(),
|
||||
};
|
||||
}
|
||||
},
|
||||
inject: [ConfigService],
|
||||
|
|
|
|||
Loading…
Reference in New Issue