网站整体风格设计,网页加速器免费版 安卓,河北项目网手机版,千峰网课前言:本文旨在解决微服务下通过网关访问所用服务的knife4j文档#xff0c;无需再通过其他服务单独访问
功能模块配置#xff1a;
1.配置类#xff1a;
在这个文件中注意下basePackage的扫描路径#xff0c;修改为对应controller下的路径。
Configuration
EnableSwagger…前言:本文旨在解决微服务下通过网关访问所用服务的knife4j文档无需再通过其他服务单独访问
功能模块配置
1.配置类
在这个文件中注意下basePackage的扫描路径修改为对应controller下的路径。
Configuration
EnableSwagger2WebMvc
public class SwaggerConfiguration {Beanpublic Docket getDocket() {return new Docket(DocumentationType.SWAGGER_2).apiInfo(getApiInfoBuilder()).select().apis(RequestHandlerSelectors.basePackage(com.example.micorder.controller)).paths(PathSelectors.any()).build();}private ApiInfo getApiInfoBuilder() {return new ApiInfoBuilder().title(Knife4j-mic-order文档).description(div stylefont-size:14px;color:red;swagger-bootstrap-ui-demo RESTful APIs/div).termsOfServiceUrl(服务url).contact(new Contact(xxx, url, xxxqq.com)).version(1.0).build();}
}2.pom.xml ?xml version1.0 encodingUTF-8?
project xmlnshttp://maven.apache.org/POM/4.0.0 xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsdmodelVersion4.0.0/modelVersionparentgroupIdcom.example/groupIdartifactIdmicroservices/artifactIdversion0.0.1-SNAPSHOT/version/parentartifactIdmic-elasticsearch/artifactIdversion0.0.1-SNAPSHOT/versionnamemic-elasticsearch/namedescriptionDemo project for Spring Boot/descriptiondependenciesdependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-test/artifactIdscopetest/scope/dependency!-- https://mvnrepository.com/artifact/com.github.xiaoymin/knife4j-micro-spring-boot-starter --dependencygroupIdcom.github.xiaoymin/groupIdartifactIdknife4j-micro-spring-boot-starter/artifactIdversion${knife4j.version}/version/dependencydependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-starter-alibaba-nacos-discovery/artifactId/dependency/dependenciesbuildpluginsplugingroupIdorg.springframework.boot/groupIdartifactIdspring-boot-maven-plugin/artifactId/plugin/plugins/build
/project
3.配置
# https://doc.xiaominfo.com/knife4j
knife4j:# 开启增强配置enable: true# 是否开启生产环境屏蔽 true:关闭swaggerfalse:开启swaggerproduction: falsebasic:# 是否开启认证enable: false# Basic认证用户名username: admin# Basic认证密码password: 123456
spring:application:name: test-knife4j网关模块
1.配置类
SwaggerResourceConfig
Slf4j
Component
Primary
AllArgsConstructor
public class SwaggerResourceConfig implements SwaggerResourcesProvider {private final RouteLocator routeLocator;private final GatewayProperties gatewayProperties;Overridepublic ListSwaggerResource get() {ListSwaggerResource resources new ArrayList();ListString routes new ArrayList();routeLocator.getRoutes().subscribe(route - routes.add(route.getId()));gatewayProperties.getRoutes().stream().filter(routeDefinition - routes.contains(routeDefinition.getId())).forEach(route - {route.getPredicates().stream().filter(predicateDefinition - (Path).equalsIgnoreCase(predicateDefinition.getName())).forEach(predicateDefinition - resources.add(swaggerResource(route.getId(),predicateDefinition.getArgs().get(NameUtils.GENERATED_NAME_PREFIX 0).replace(**, v2/api-docs))));});return resources;}private SwaggerResource swaggerResource(String name, String location) {log.info(name:{},location:{}, name, location);SwaggerResource swaggerResource new SwaggerResource();swaggerResource.setName(name);swaggerResource.setLocation(location);swaggerResource.setSwaggerVersion(2.0);return swaggerResource;}
}SwaggerHandler
RestController
public class SwaggerHandler {Autowired(required false)private SecurityConfiguration securityConfiguration;Autowired(required false)private UiConfiguration uiConfiguration;private final SwaggerResourcesProvider swaggerResources;Autowiredpublic SwaggerHandler(SwaggerResourcesProvider swaggerResources) {this.swaggerResources swaggerResources;}GetMapping(/swagger-resources/configuration/security)public MonoResponseEntitySecurityConfiguration securityConfiguration() {return Mono.just(new ResponseEntity(Optional.ofNullable(securityConfiguration).orElse(SecurityConfigurationBuilder.builder().build()), HttpStatus.OK));}GetMapping(/swagger-resources/configuration/ui)public MonoResponseEntityUiConfiguration uiConfiguration() {return Mono.just(new ResponseEntity(Optional.ofNullable(uiConfiguration).orElse(UiConfigurationBuilder.builder().build()), HttpStatus.OK));}GetMapping(/swagger-resources)public MonoResponseEntity swaggerResources() {return Mono.just((new ResponseEntity(swaggerResources.get(), HttpStatus.OK)));}
}网关模块配置文件如下
server:port: 5000
spring:application:name: gatewaycloud:nacos:discovery:server-addr: 127.0.0.1:8848group: microservicesgateway:routes:- id: elasticsearchuri: lb://elasticsearchpredicates:- Path/elasticsearch/**filters:- StripPrefix1pom
?xml version1.0 encodingUTF-8?
project xmlnshttp://maven.apache.org/POM/4.0.0 xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsdmodelVersion4.0.0/modelVersionparentgroupIdcom.example/groupIdartifactIdmicroservices/artifactIdversion0.0.1-SNAPSHOT/version/parentartifactIdmic-gateway/artifactIdversion0.0.1-SNAPSHOT/versionnamemic-gateway/namedescription网关模块/descriptiondependenciesdependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-starter-alibaba-nacos-discovery/artifactId/dependencydependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-starter-gateway/artifactId/dependencydependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-starter-loadbalancer/artifactId/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-test/artifactIdscopetest/scope/dependency!-- https://mvnrepository.com/artifact/org.projectlombok/lombok --dependencygroupIdorg.projectlombok/groupIdartifactIdlombok/artifactIdversion1.18.22/versionscopeprovided/scope/dependency!-- https://mvnrepository.com/artifact/com.github.xiaoymin/knife4j-spring-boot-starter --dependencygroupIdcom.github.xiaoymin/groupIdartifactIdknife4j-spring-boot-starter/artifactId
!-- version2.0.9/version--version3.0.3/version/dependency/dependenciesbuildpluginsplugingroupIdorg.springframework.boot/groupIdartifactIdspring-boot-maven-plugin/artifactId/plugin/plugins/build/project
nacos中模块是否在同一分组下以及是否注册。
访问下边的路径即可 http://localhost:5000/doc.html