SpringBoot整合Swagger接口文档工具的流程步骤

 更新时间:2023年08月18日 09:58:36   作者:Jimmy  
我们在开发接口的时候,会将接口文档给前端的开发者进行对接,我们可以通过Postman或者Yapi等接口管理工具进行编写管理,实际开发中,接口的管理确实也应该通过专业的工具管理,本文,我们就来谈谈怎么在SpringBoot整合Swagger接口文档工具

我们在开发接口的时候,会将接口文档给前端的开发者进行对接。我们可以通过 Postman或者 Yapi等接口管理工具进行编写管理。实际开发中,接口的管理确实也应该通过专业的工具管理。

那么,如果只是小团队使用,我们是否可以在边开发的过程中,顺便把接口文档给写了呢?

当然,本文,我们就来谈谈怎么在 Spring Boot整合 Swagger接口文档工具。

本文开发环境:

  • spring boot 版本 2.1.3.RELEASE
  • java SDK 版本 1.8
  • mac m1 系统

本文,在笔者之前的项目浅聊一下Spring Security的使用方法基础上开发。

笔者尝试了下整合 swagger3,但是因为原先项目版本的问题,未能整合成功。故整合 swagger2,文档作用都一样,就是页面长得不一样,可以放心使用。

添加依赖

我们在 pom.xml 中添加下面的依赖:

<!-- swagger -->
<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger2</artifactId>
    <version>2.9.2</version>
</dependency>
<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger-ui</artifactId>
    <version>2.9.2</version>
</dependency>
<dependency>
    <groupId>com.github.xiaoymin</groupId>
    <artifactId>swagger-bootstrap-ui</artifactId>
    <version>1.9.6</version>
</dependency>

并在配置文件中添加配置:

spring.mvc.pathmatch.matching-strategy=ANT_PATH_MATCHER

引入配置

在包 com.launch.config 中添加 SwaggerConfig.java 类:

swagger_class.png

package com.launch.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.service.Contact;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
@Configuration
@EnableSwagger2
public class SwaggerConfig {
    @Bean
    public Docket createRestApi() {
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo())
                .select()
                .apis(RequestHandlerSelectors.basePackage("com.launch.controller")) // 接口所在的包
                .paths(PathSelectors.any())
                .build();
    }
    private ApiInfo apiInfo() {
        return new ApiInfoBuilder()
                .title("Launch 系统") // 标题
                .description("Jimmy Control System") // 描述
                .version("1.0.0") // 版本
                // 姓名,联系 link,邮箱
                .contact(new Contact("Jimmy", "https://juejin.cn/user/1996368846261294", "reng99@outlook.com"))
                .build();
    }
}

到此,我们运行项目,打开连接 http://localhost:8080/swagger-ui/index.html ,咦, 404 耶~

404.png

处理 404

版本的问题,使得我们无法读取 swagger 包下面的页面。那么,我们来重写。

我们在 com.launch.config 中新增 WebMvcConfig.java 文件:

package com.launch.config;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
@Configuration
public class WebMvcConfig implements WebMvcConfigurer {
    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/**").addResourceLocations("classpath:/static/");
        registry.addResourceHandler("swagger-ui.html")
                .addResourceLocations("classpath:/META-INF/resources/");
        registry.addResourceHandler("/webjars/**")
                .addResourceLocations("classpath:/META-INF/resources/webjars/");
        registry.addResourceHandler("doc.html")
                .addResourceLocations("classpath:/META-INF/resources/");
    }
}

重新启动,访问路径 http://localhost:8080/doc.html ,就可以看到效果。

接口信息dashboard.png

在本文浅聊一下Spring Security的使用方法 中,我们已经开发好了六个接口。点击进入其中一个,比如 queryAll 查询所有用户的接口,可看到其文档:

接口文档.png

我们还可以对该接口进行调试:

调试.png

感兴趣的读者可以自行尝试。

以上就是SpringBoot整合Swagger接口文档工具的流程步骤的详细内容,更多关于SpringBoot整合Swagger的资料请关注脚本之家其它相关文章!

相关文章

  • java 获取子串速率比较分析

    java 获取子串速率比较分析

    这篇文章主要为大家介绍了java 获取子串速率比较分析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-12-12
  • 详解Java 线程中断

    详解Java 线程中断

    这篇文章主要介绍了Java 线程中断的相关资料,帮助大家更好的理解和使用Java,感兴趣的朋友可以了解下
    2021-02-02
  • spring security自定义登录页面

    spring security自定义登录页面

    在项目中我们肯定不能使用Spring自己生成的登录页面,而要用我们自己的登录页面,下面通过本文给大家分享spring security自定义登录页面的实现方法,一起看看吧
    2017-09-09
  • java书店系统毕业设计 用户模块(2)

    java书店系统毕业设计 用户模块(2)

    这篇文章主要介绍了java书店系统毕业设计,第二步系统总体设计,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-10-10
  • Springboot中spring-boot-starter-quartz的使用及说明

    Springboot中spring-boot-starter-quartz的使用及说明

    这篇文章主要介绍了Springboot中spring-boot-starter-quartz的使用及说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-12-12
  • springboot 项目启动后无日志输出直接结束的解决

    springboot 项目启动后无日志输出直接结束的解决

    这篇文章主要介绍了springboot 项目启动后无日志输出直接结束的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-12-12
  • java使用Base64实现文件加密解密

    java使用Base64实现文件加密解密

    这篇文章主要为大家详细介绍了java实现Base64给文件加密、解密,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-03-03
  • 详解Java设计模式——命令模式

    详解Java设计模式——命令模式

    这篇文章主要介绍了Java设计模式——命令模式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-04-04
  • Java对象转Json,关于@JSONField对象字段重命名和顺序问题

    Java对象转Json,关于@JSONField对象字段重命名和顺序问题

    这篇文章主要介绍了Java对象转Json,关于@JSONField对象字段重命名和顺序问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-08-08
  • Java实现折半插入排序算法的示例代码

    Java实现折半插入排序算法的示例代码

    折半插入排序(Binary Insertion Sort)是对插入排序算法的一种改进。不断的依次将元素插入前面已排好序的序列中。本文将利用Java语言实现这一排序算法,需要的可以参考一下
    2022-08-08

最新评论