swagger with knife4j

This commit is contained in:
MaxKey 2023-03-20 13:43:25 +08:00
parent fba48af522
commit cfded0f337
6 changed files with 65 additions and 12 deletions

View File

@ -418,8 +418,8 @@ subprojects {
implementation group: 'com.fasterxml', name: 'classmate', version: "${classmateVersion}"
implementation group: 'com.fasterxml.woodstox', name: 'woodstox-core', version: "${woodstoxVersion}"
implementation group: 'com.alibaba', name: 'fastjson', version: "${fastjsonVersion}"
//docs
implementation group: 'org.mapstruct', name: 'mapstruct', version: "${mapstructVersion}"
//docs
//implementation group: 'io.swagger', name: 'swagger-annotations', version: "${swaggerVersion}"
//implementation group: 'io.swagger', name: 'swagger-models', version: "${swaggerVersion}"
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.webjars', name: 'webjars-locator-core', version: '0.48'
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
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
implementation fileTree(dir: "${rootDir}/maxkey-lib/", include: '*.jar')

View File

@ -90,9 +90,9 @@ concurrentlinkedhashmaplruVersion =1.4.2
jbossloggingVersion =3.4.3.Final
hibernateVersion =6.2.5.Final
#doc
swaggerV3Version =2.2.1
springdocVersion =1.6.13
knife4jVersion =3.0.3
swaggerV3Version =2.2.8
springdocVersion =1.6.15
knife4jVersion =4.0.0
#database
postgresqlVersion =42.4.1
mysqlconnectorjavaVersion =8.0.32

View File

@ -1,8 +1,12 @@
package org.maxkey.autoconfigure;
import java.util.HashMap;
import java.util.Map;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springdoc.core.GroupedOpenApi;
import org.springdoc.core.customizers.GlobalOpenApiCustomizer;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.autoconfigure.AutoConfiguration;
import org.springframework.context.annotation.Bean;
@ -28,6 +32,24 @@ public class SwaggerConfig {
@Value("${maxkey.swagger.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
public GroupedOpenApi userApi(){
String[] paths = {
@ -57,7 +79,7 @@ public class SwaggerConfig {
.title(title)
.description(description)
.version(version)
.termsOfService("https://www.maxkey.top/")
.termsOfService("http://www.maxkey.top/")
.license(
new License()
.name("Apache License, Version 2.0")
@ -67,7 +89,7 @@ public class SwaggerConfig {
externalDocs(
new ExternalDocumentation()
.description("MaxKey.top contact support@maxsso.net")
.url("https://www.maxkey.top/")
.url("http://www.maxkey.top/")
);
}
}

View File

@ -79,6 +79,7 @@ public class MaxKeyMvcConfig implements WebMvcConfigurer {
_logger.debug("add statics");
registry.addResourceHandler("/static/**")
.addResourceLocations("classpath:/static/");
_logger.debug("add templates");
registry.addResourceHandler("/templates/**")
.addResourceLocations("classpath:/templates/");
@ -86,12 +87,13 @@ public class MaxKeyMvcConfig implements WebMvcConfigurer {
_logger.debug("add swagger");
registry.addResourceHandler("swagger-ui.html")
.addResourceLocations("classpath:/META-INF/resources/");
registry.addResourceHandler("/webjars/**")
.addResourceLocations("classpath:/META-INF/resources/webjars/");
_logger.debug("add knife4j");
registry.addResourceHandler("doc.html").addResourceLocations("classpath:/META-INF/resources/");
registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/");
registry.addResourceHandler("doc.html")
.addResourceLocations("classpath:/META-INF/resources/");
registry.addResourceHandler("/webjars/**")
.addResourceLocations("classpath:/META-INF/resources/webjars/");
_logger.debug("add Resource Handler finished .");
}

View File

@ -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.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 #
############################################################################

View File

@ -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.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 #
############################################################################