红茶的个人站点

  • 首页
  • 专栏
  • 开发工具
  • 其它
  • 隐私政策
Awalon
Talk is cheap,show me the code.
  1. 首页
  2. 专栏
  3. Spring Boot 学习笔记
  4. 正文

从零开始 Spring Boot 8:Swagger

2022年5月5日 1057点热度 0人点赞 0条评论

spring boot

图源:简书 (jianshu.com)

后台开发最常见的是开发Restfull接口,相应的,为了和前端沟通就可能需要定义和维护一套接口文档,编写和维护文档往往需要花费相当的时间和精力。

Swagger是一套定义良好的接口文档规范,可以借助相关的API和工具,根据项目代码自动生成接口文档。

下面我们就给之前做的示例项目my_first_app用Swapper添加上接口文档的支持。

你可以从learn_spring_boot (github.com)获取之前的项目代码。

添加依赖

首先添加相关依赖:

        <!-- 引入Swagger3依赖 -->
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-boot-starter</artifactId>
            <version>3.0.0</version>
        </dependency>

最新的版本是3.0.0。

添加配置

为了能让工具在指定包内检索接口,以及设置作者等相关展示信息,需要通过添加配置类来设置:

package cn.icexmoon.my_first_app.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.oas.annotations.EnableOpenApi;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.service.Contact;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
​
@Configuration
@EnableOpenApi
public class SwaggerConfig {
    @Bean
    public Docket docket(){
        return new Docket(DocumentationType.OAS_30)
                .apiInfo(apiInfo()).enable(true)
                .select()
                //apis: 添加swagger接口提取范围
                .apis(RequestHandlerSelectors.basePackage("cn.icexmoon.my_first_app"))
                //.apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class))
                .paths(PathSelectors.any())
                .build();
    }
​
    private ApiInfo apiInfo(){
        return new ApiInfoBuilder()
                .title("XX项目接口文档")
                .description("XX项目描述")
                .contact(new Contact("作者", "作者URL", "作者Email"))
                .version("1.0")
                .build();
    }
}

访问

现在启动项目,并访问http://localhost:8080/swagger-ui/index.html应该就能看到在线接口文档了:

image-20220505164033520

如果遇到Failed to start bean documentationPluginsBootstrapper等问题,可能是高版本Spring Boot的兼容性问题,可以添加以下配置解决:

spring.mvc.pathmatch.matching-strategy=ant_path_matcher

谢谢阅读。

你可以在learn_spring_boot (github.com)找到本篇文章的最终示例代码。

参考资料

  • 解决 高版本SpringBoot整合Swagger 启动报错Failed to start bean ‘documentationPluginsBootstrapper‘ 问题_摸鱼佬的博客-CSDN博客

  • Spring Boot 使用 Swagger3 生成 API 接口文档 - 云+社区 - 腾讯云 (tencent.com)

本作品采用 知识共享署名 4.0 国际许可协议 进行许可
标签: 暂无
最后更新:2022年8月29日

魔芋红茶

加一点PHP,加一点Go,加一点Python......

点赞
< 上一篇
下一篇 >

文章评论

取消回复

*

code

COPYRIGHT © 2021 icexmoon.cn. ALL RIGHTS RESERVED.
本网站由提供CDN加速/云存储服务

Theme Kratos Made By Seaton Jiang

宁ICP备2021001508号

宁公网安备64040202000141号