mirror of
https://gitee.com/dromara/MaxKey.git
synced 2025-12-07 01:18:27 +08:00
swagger with knife4j
This commit is contained in:
parent
fba48af522
commit
cfded0f337
@ -418,8 +418,8 @@ subprojects {
|
|||||||
implementation group: 'com.fasterxml', name: 'classmate', version: "${classmateVersion}"
|
implementation group: 'com.fasterxml', name: 'classmate', version: "${classmateVersion}"
|
||||||
implementation group: 'com.fasterxml.woodstox', name: 'woodstox-core', version: "${woodstoxVersion}"
|
implementation group: 'com.fasterxml.woodstox', name: 'woodstox-core', version: "${woodstoxVersion}"
|
||||||
implementation group: 'com.alibaba', name: 'fastjson', version: "${fastjsonVersion}"
|
implementation group: 'com.alibaba', name: 'fastjson', version: "${fastjsonVersion}"
|
||||||
//docs
|
|
||||||
implementation group: 'org.mapstruct', name: 'mapstruct', version: "${mapstructVersion}"
|
implementation group: 'org.mapstruct', name: 'mapstruct', version: "${mapstructVersion}"
|
||||||
|
//docs
|
||||||
//implementation group: 'io.swagger', name: 'swagger-annotations', version: "${swaggerVersion}"
|
//implementation group: 'io.swagger', name: 'swagger-annotations', version: "${swaggerVersion}"
|
||||||
//implementation group: 'io.swagger', name: 'swagger-models', version: "${swaggerVersion}"
|
//implementation group: 'io.swagger', name: 'swagger-models', version: "${swaggerVersion}"
|
||||||
implementation group: 'io.swagger.core.v3', name: 'swagger-annotations', version: "${swaggerV3Version}"
|
implementation group: 'io.swagger.core.v3', name: 'swagger-annotations', version: "${swaggerV3Version}"
|
||||||
@ -433,9 +433,11 @@ subprojects {
|
|||||||
implementation group: 'org.springdoc', name: 'springdoc-openapi-ui', version: "${springdocVersion}"
|
implementation group: 'org.springdoc', name: 'springdoc-openapi-ui', version: "${springdocVersion}"
|
||||||
implementation group: 'org.webjars', name: 'webjars-locator-core', version: '0.48'
|
implementation group: 'org.webjars', name: 'webjars-locator-core', version: '0.48'
|
||||||
implementation group: 'org.webjars', name: 'webjars-locator', version: '0.42'
|
implementation group: 'org.webjars', name: 'webjars-locator', version: '0.42'
|
||||||
implementation group: 'org.webjars', name: 'swagger-ui', version: '4.1.3'
|
implementation group: 'org.webjars', name: 'swagger-ui', version: '4.11.1'
|
||||||
//knife4j
|
//knife4j
|
||||||
implementation group: 'com.github.xiaoymin', name: 'knife4j-springdoc-ui', version: "${knife4jVersion}"
|
implementation group: 'com.github.xiaoymin', name: 'knife4j-core', version: "${knife4jVersion}"
|
||||||
|
implementation group: 'com.github.xiaoymin', name: 'knife4j-openapi3-ui', version: "${knife4jVersion}"
|
||||||
|
implementation group: 'com.github.xiaoymin', name: 'knife4j-openapi3-spring-boot-starter', version: "${knife4jVersion}"
|
||||||
|
|
||||||
//local jars
|
//local jars
|
||||||
implementation fileTree(dir: "${rootDir}/maxkey-lib/", include: '*.jar')
|
implementation fileTree(dir: "${rootDir}/maxkey-lib/", include: '*.jar')
|
||||||
|
|||||||
@ -90,9 +90,9 @@ concurrentlinkedhashmaplruVersion =1.4.2
|
|||||||
jbossloggingVersion =3.4.3.Final
|
jbossloggingVersion =3.4.3.Final
|
||||||
hibernateVersion =6.2.5.Final
|
hibernateVersion =6.2.5.Final
|
||||||
#doc
|
#doc
|
||||||
swaggerV3Version =2.2.1
|
swaggerV3Version =2.2.8
|
||||||
springdocVersion =1.6.13
|
springdocVersion =1.6.15
|
||||||
knife4jVersion =3.0.3
|
knife4jVersion =4.0.0
|
||||||
#database
|
#database
|
||||||
postgresqlVersion =42.4.1
|
postgresqlVersion =42.4.1
|
||||||
mysqlconnectorjavaVersion =8.0.32
|
mysqlconnectorjavaVersion =8.0.32
|
||||||
|
|||||||
@ -1,8 +1,12 @@
|
|||||||
package org.maxkey.autoconfigure;
|
package org.maxkey.autoconfigure;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
import org.springdoc.core.GroupedOpenApi;
|
import org.springdoc.core.GroupedOpenApi;
|
||||||
|
import org.springdoc.core.customizers.GlobalOpenApiCustomizer;
|
||||||
import org.springframework.beans.factory.annotation.Value;
|
import org.springframework.beans.factory.annotation.Value;
|
||||||
import org.springframework.boot.autoconfigure.AutoConfiguration;
|
import org.springframework.boot.autoconfigure.AutoConfiguration;
|
||||||
import org.springframework.context.annotation.Bean;
|
import org.springframework.context.annotation.Bean;
|
||||||
@ -28,6 +32,24 @@ public class SwaggerConfig {
|
|||||||
@Value("${maxkey.swagger.enable}")
|
@Value("${maxkey.swagger.enable}")
|
||||||
boolean enable;
|
boolean enable;
|
||||||
|
|
||||||
|
@Bean
|
||||||
|
public GlobalOpenApiCustomizer orderGlobalOpenApiCustomizer() {
|
||||||
|
return openApi -> {
|
||||||
|
if (openApi.getTags()!=null){
|
||||||
|
openApi.getTags().forEach(tag -> {
|
||||||
|
Map<String,Object> map=new HashMap<>();
|
||||||
|
map.put("x-order",1);
|
||||||
|
tag.setExtensions(map);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
if(openApi.getPaths()!=null){
|
||||||
|
openApi.addExtension("x-test123","333");
|
||||||
|
openApi.getPaths().addExtension("x-abb",1);
|
||||||
|
}
|
||||||
|
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
@Bean
|
@Bean
|
||||||
public GroupedOpenApi userApi(){
|
public GroupedOpenApi userApi(){
|
||||||
String[] paths = {
|
String[] paths = {
|
||||||
@ -57,7 +79,7 @@ public class SwaggerConfig {
|
|||||||
.title(title)
|
.title(title)
|
||||||
.description(description)
|
.description(description)
|
||||||
.version(version)
|
.version(version)
|
||||||
.termsOfService("https://www.maxkey.top/")
|
.termsOfService("http://www.maxkey.top/")
|
||||||
.license(
|
.license(
|
||||||
new License()
|
new License()
|
||||||
.name("Apache License, Version 2.0")
|
.name("Apache License, Version 2.0")
|
||||||
@ -67,7 +89,7 @@ public class SwaggerConfig {
|
|||||||
externalDocs(
|
externalDocs(
|
||||||
new ExternalDocumentation()
|
new ExternalDocumentation()
|
||||||
.description("MaxKey.top contact support@maxsso.net")
|
.description("MaxKey.top contact support@maxsso.net")
|
||||||
.url("https://www.maxkey.top/")
|
.url("http://www.maxkey.top/")
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -79,6 +79,7 @@ public class MaxKeyMvcConfig implements WebMvcConfigurer {
|
|||||||
_logger.debug("add statics");
|
_logger.debug("add statics");
|
||||||
registry.addResourceHandler("/static/**")
|
registry.addResourceHandler("/static/**")
|
||||||
.addResourceLocations("classpath:/static/");
|
.addResourceLocations("classpath:/static/");
|
||||||
|
|
||||||
_logger.debug("add templates");
|
_logger.debug("add templates");
|
||||||
registry.addResourceHandler("/templates/**")
|
registry.addResourceHandler("/templates/**")
|
||||||
.addResourceLocations("classpath:/templates/");
|
.addResourceLocations("classpath:/templates/");
|
||||||
@ -86,12 +87,13 @@ public class MaxKeyMvcConfig implements WebMvcConfigurer {
|
|||||||
_logger.debug("add swagger");
|
_logger.debug("add swagger");
|
||||||
registry.addResourceHandler("swagger-ui.html")
|
registry.addResourceHandler("swagger-ui.html")
|
||||||
.addResourceLocations("classpath:/META-INF/resources/");
|
.addResourceLocations("classpath:/META-INF/resources/");
|
||||||
registry.addResourceHandler("/webjars/**")
|
|
||||||
.addResourceLocations("classpath:/META-INF/resources/webjars/");
|
|
||||||
|
|
||||||
_logger.debug("add knife4j");
|
_logger.debug("add knife4j");
|
||||||
registry.addResourceHandler("doc.html").addResourceLocations("classpath:/META-INF/resources/");
|
registry.addResourceHandler("doc.html")
|
||||||
registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/");
|
.addResourceLocations("classpath:/META-INF/resources/");
|
||||||
|
|
||||||
|
registry.addResourceHandler("/webjars/**")
|
||||||
|
.addResourceLocations("classpath:/META-INF/resources/webjars/");
|
||||||
|
|
||||||
_logger.debug("add Resource Handler finished .");
|
_logger.debug("add Resource Handler finished .");
|
||||||
}
|
}
|
||||||
|
|||||||
@ -276,6 +276,20 @@ maxkey.swagger.title =MaxKey\u5355\u70b9\u767b\u5f55\
|
|||||||
maxkey.swagger.description =MaxKey\u5355\u70b9\u767b\u5f55\u8ba4\u8bc1\u7cfb\u7edfAPI\u6587\u6863
|
maxkey.swagger.description =MaxKey\u5355\u70b9\u767b\u5f55\u8ba4\u8bc1\u7cfb\u7edfAPI\u6587\u6863
|
||||||
maxkey.swagger.version =${application.formatted-version}
|
maxkey.swagger.version =${application.formatted-version}
|
||||||
|
|
||||||
|
springdoc.swagger-ui.path =/swagger-ui.html
|
||||||
|
springdoc.swagger-ui.enabled =true
|
||||||
|
springdoc.swagger-ui.tags-sorter =alpha
|
||||||
|
springdoc.swagger-ui.operations-sorter =alpha
|
||||||
|
springdoc.swagger-ui.showExtensions =true
|
||||||
|
springdoc.api-docs.path =/v3/api-docs
|
||||||
|
springdoc.group-configs[0].group =default
|
||||||
|
springdoc.group-configs[0].paths-to-match =/*
|
||||||
|
springdoc.group-configs[0].packages-to-scan =org.maxkey
|
||||||
|
|
||||||
|
knife4j.enable =true
|
||||||
|
knife4j.setting.language =zh_cn
|
||||||
|
knife4j.setting.swagger-model-name =\u5B9E\u4F53\u7C7B\u5217\u8868
|
||||||
|
|
||||||
############################################################################
|
############################################################################
|
||||||
#freemarker configuration #
|
#freemarker configuration #
|
||||||
############################################################################
|
############################################################################
|
||||||
|
|||||||
@ -212,6 +212,19 @@ maxkey.swagger.title =MaxKey\u5355\u70b9\u767b\u5f55\
|
|||||||
maxkey.swagger.description =MaxKey\u5355\u70b9\u767b\u5f55\u8ba4\u8bc1\u7cfb\u7edfAPI\u6587\u6863
|
maxkey.swagger.description =MaxKey\u5355\u70b9\u767b\u5f55\u8ba4\u8bc1\u7cfb\u7edfAPI\u6587\u6863
|
||||||
maxkey.swagger.version =${application.formatted-version}
|
maxkey.swagger.version =${application.formatted-version}
|
||||||
|
|
||||||
|
springdoc.swagger-ui.path =/swagger-ui.html
|
||||||
|
springdoc.swagger-ui.enabled =true
|
||||||
|
springdoc.swagger-ui.tags-sorter =alpha
|
||||||
|
springdoc.swagger-ui.operations-sorter =alpha
|
||||||
|
springdoc.swagger-ui.showExtensions =true
|
||||||
|
springdoc.api-docs.path =/v3/api-docs
|
||||||
|
springdoc.group-configs[0].group =default
|
||||||
|
springdoc.group-configs[0].paths-to-match =/*
|
||||||
|
springdoc.group-configs[0].packages-to-scan =org.maxkey
|
||||||
|
|
||||||
|
knife4j.enable =true
|
||||||
|
knife4j.setting.language =zh_cn
|
||||||
|
knife4j.setting.swagger-model-name =\u5B9E\u4F53\u7C7B\u5217\u8868
|
||||||
############################################################################
|
############################################################################
|
||||||
#freemarker configuration #
|
#freemarker configuration #
|
||||||
############################################################################
|
############################################################################
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user