spring-cloud-gateway聚合swagger文档

本文档介绍了如何在Spring Cloud Gateway中聚合多个微服务的Swagger文档,通过配置@EnableSwagger2Doc和@EnableSwaggerBootstrapUI简化Swagger配置,利用Knife4j增强Swagger UI界面。详细步骤包括自定义组件集成Swagger,业务模块引入组件并配置Swagger信息,以及网关模块集成Knife4j并开发过滤器以聚合多模块Swagger文档。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

需求背景

spring cloud搭建微服务系统,每个业务模块使用swagger开放文档接口查询,在业务网关模块提供swagger文档聚合查询接口,可以通过选择业务模块分类查看。

框架选型、版本及主要功能
  1. spring boot 2.1.6.RELEASE
  2. spring cloud Greenwich.SR3
  3. spring cloud gateway 2.1.3.RELEASE 网关组件
  4. knife4j 2.0.1 增强swagger ui样式,网关使用其starter依赖
  5. swagger bootstrap ui 1.9.6 增强swagger ui样式
  6. spring4all-swagger 1.9.0.RELEASE 配置化swagger参数,免去代码开发
模块职责划分
  1. swagger组件
    开发一个项目内的swagger-spring-boot-starter,整合swagger bootstrap ui 1.9.6和spring4all-swagger 1.9.0.RELEASE,对外提供@EnableSwagger注解服务

  2. 业务模块
    引用自定义的swagger-spring-boot-starter,同时在配置文件中添加本模块的swagger基础信息配置。

  3. 网关模块
    引用knife4j整合swagger,并开发filter、handler、config对多模块的swagger进行聚合

开发步骤示例
swagger组件

pom.xml文件依赖

<dependency>
	<groupId>com.github.xiaoymin</groupId>
	<artifactId>swagger-bootstrap-ui</artifactId>
	<version>1.9.6</version>
</dependency>
<dependency>
	<groupId>com.spring4all</groupId>
	<artifactId>swagger-spring-boot-starter</artifactId>
	<version>1.9.0.RELEASE</version>
</dependency>

自定义注解

@Target({
   ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@EnableSwagger2Doc
@EnableSwaggerBootstrapUI
@Import(SwaggerCommandLineRunner.class)
public @interface EnableSwagger {
   
}

注意@EnableSwagger2Doc,@EnableSwaggerBootstrapUI注解,@EnableSwagger2Doc注解能将swagger配置文档化,避免业务模块再开发swagger的代码,@EnableSwaggerBootstrapUI就是改进了swagger ui界面。

指定swagger的默认访问端口

@Slf4j
@Component
public class SwaggerCommandLineRunner implements CommandLineRunner {
   

    @Value("${server.port:8080}")
    private String serverPort;

    @Override
    public void run(String... args) {
   
        log.info("swagger url:http://localhost:" + serverPort + "/doc.html");
    }
}

这样这个组件就集成完毕了,这个组件以多module的形式存在于项目公共组件中,使用maven引用即可。

业务模块开发

application中使用@EnableSwagger注解(自行开发的那个,不要搞错了)

@SpringBootApplication
@EnableDiscoveryClient
@MapperScan("com.hy.demo.**.mapper"
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值