专业的编程技术博客社区

网站首页 > 博客文章 正文

Spring Boot 进阶-实战Spring Boot整合Swagger3.0

baijin 2024-09-15 14:40:48 博客文章 5 ℃ 0 评论


说到Swagger有人会问Swagger到底是什么?作为一个后端开发人员来讲,为什么要使用Swagger呢?因为我们现在完成的项目大多数情况下都是前后端分离的项目,而对于前端开发人员来讲,他们需要调用接口,才能获取到对应的数据。那么这个接口如何获取,总不能是后端开发人员弄好之后一个接口一个接口复制删帖给人家吧?当然这种操作在接口少量的情况下很容易就实现了,但是如果接口数量较多的情况下就有点太不可取了。

这个时候Swagger就应用而生了,Swagger将项目中的接口进行统一的管理,前端开发人员只需要将这套接口文档获取到就可以查找到自己想要的接口了。使用Swagger的好处也就显而易见了。

使用Swagger 的好处

  • 无依赖:UI适配与任何的开发环境,无论是本地还是Web
  • 人性化:允许开发人员轻松交互并且尝试API的每个操作,方便使用
  • 易导航:使用文档分类整理可以快速地查找到自己想要的资源
  • 支持所有浏览器:SwaggerUI支持了几乎所有的主流浏览器
  • 定制化:可以通过源代码的方式访问到需要调整的SwaggerUI
  • 支持OAS技术

Swagger3.0

Swagger3.0 是在Swagger2.0的基础上坐了一次大的升级,在官方文档上给出了如下的一些修改

  1. 删除了对于springfox-swagger2的依赖
  2. 删除了所有@EnableSwagger2XXX的注解
  3. 添加了关于Swagger的使用场景启动器springfox-boot-starter依赖
  4. 移除了guava等第三方依赖相关
  5. 修改文档访问地址为http://ip:port/project/swagger-ui/index.html

既然做了这么多的修改,那么接下来我们就来带着大家来一起实战Spring Boot整合Swagger3.0吧。

整合Swagger3.0

第一步、在POM文件中引入对应的场景启动器

     <dependency>
          <groupId>io.springfox</groupId>
          <artifactId>springfox-boot-starter</artifactId>
          <version>3.0.0</version>
      </dependency>

第二步、编写Swagger的基础配置类

@Configuration
public class BaseSwagger3Config {
    
    @Autowired
    private BaseSwagger3Properties properties;

    @Bean
    public Docket baseApi(){
        return new Docket(DocumentationType.OAS_30)
                // 是否开启,根据环境配置
                .enable(properties.getEnable())
                .groupName(properties.getGroupName())
                .apiInfo(frontApiInfo())
                .select()
                .apis(RequestHandlerSelectors.basePackage(properties.getBasePackege()))
                .paths(PathSelectors.any())
                .build();
    }

    // 前台API信息
    private ApiInfo frontApiInfo(){
        return new ApiInfoBuilder()
                .title(properties.getTitle())
                .description(properties.getDescription())
                .version(properties.getVersion())
                .contact(
                        // 添加开发者信息
                        new Contact(
                                properties.getContactName(),
                                properties.getContactUrl(),
                                properties.getContactEmail())
                ).build();
    }

}

这里我们指定了配置文件映射类

@Component
@ConfigurationProperties(prefix = "spring.swagger")
@Data
public class BaseSwagger3Properties {

    private String groupName;
    private String basePackege;
    private String title;
    private String description;
    private String contactName;
    private String contactEmail;
    private String contactUrl;
    private String version;
    private Boolean enable;

}

第三步、添加全局配置文件

spring:
  swagger:
    enable: true
    groupName: 前端接口
    basePackege: com.example.demo.controller.api
    title: 前端测试接口
    description: 前端测试Spring Boot整合Swagger3.0
    contactName: nihui
    contactEmail: 18202504057@163.com
    contactUrl: https://blog.csdn.net/nihui123
    version: 0.0.1
  mvc:
    pathmatch:
      matching-strategy: ant_path_matcher

添加完全局配置文件之后,运行项目访问http://localhost:8080/swagger-ui/index.html路径之后就会卡看到如下的页面

通过上面的这些操作步骤,我们就可以将Swagger3.0 整合到Spring Boot中可以通过指定不同的路径,来指定不同的接口

总结

通过上面的例子我们了解了Spring Boot 如何去整合Swagger3.0的基础操作,当然Swagger3.0所支持的操作并不是只有简单的这些,我们在后续的分享中也会更进一步的去介绍Swagger3.0的其他的用法。希望大家多多关注

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表