springboot项目使用Swagger3

一、Swagger介绍

  • 号称世界上最流行的Api框架;
  • Restful Api 文档在线自动生成工具=>Api文档与API定义同步更新
  • 直接运行,可以在在线测试API 接口
  • 支持多种语言:(java,Php...)

二、Swagger3 准备工作

1、在pom.xml导入依赖
xml 复制代码
<!--        Swagger3-->
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-boot-starter</artifactId>
            <version>3.0.0</version>
        </dependency>

注:导入依赖运行报错,可在配置中添加

xml 复制代码
spring:
  mvc:
    pathmatch:
      matching-strategy: ant_path_matcher
2、配置类

访问地址:

java 复制代码
文档接口地址:http://localhost:9990/v3/api-docs
文档页面地址:http://localhost:9990/swagger-ui/index.html

注意:需要在配置上需要释放Swagger被拦截器拦截的路径,如

java 复制代码
"/swagger-resources/**"
,"/webjars/**"
,"/swagger-ui/**"
,"/v3/**"
,"/swagger-ui.html/**"

我们可以通过配置类修改接口文档UI的内容:

java 复制代码
import io.swagger.annotations.ApiOperation;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
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.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;

/**
* Swagger3配置类
* */
@Configuration
@EnableOpenApi
public class SwaggerConfig implements WebMvcConfigurer {

    @Bean
    public Docket createRestApi() {
        return new Docket(DocumentationType.OAS_30)
            .apiInfo(apiInfo())
            .select()
            /**加了@ApiOperation注解的类,才生成接口文档*/
            .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class))
            /**显示所有路径*/
            .paths(PathSelectors.any())
            .build();
    }
    private ApiInfo apiInfo() {
        return new ApiInfoBuilder()
            .title("XX接口文档")
            .description("XX接口文档XXXX")
            .version("1.0")
            .build();
    }

}

修改之后接口文档的页面:

3、Swagger的基本使用
swagger 2 OpenAPI 3 注解位置
@Api(tags = "接口类描述") @Tag(name = "接口类描述") Controller 类上
@ApiOperation @Operation(summary ="接口方法描述") Controller 方法上
@ApiImplicitParams @Parameters Controller 方法上
@ApiImplicitParam @Parameter(description="参数描述") Controller 方法上 @Parameters 里
@ApiParam @Parameter(description="参数描述") Controller 方法的参数上
@ApiIgnore @Parameter(hidden = true) 或 @Operation(hidden = true) 或 @Hidden -
@ApiModel @Schema DTO类上
@ApiModelProperty @Schema DTO属性上
相关推荐
野生的码农8 小时前
码农的妇产科实习记录
android·java·人工智能
盖世英雄酱581369 小时前
Java 组长年终总结:靠 AI 提效 50%,25 年搞副业只赚 4k?
后端·程序员·trae
毕设源码-赖学姐9 小时前
【开题答辩全过程】以 高校人才培养方案管理系统的设计与实现为例,包含答辩的问题和答案
java
+VX:Fegn089510 小时前
计算机毕业设计|基于springboot + vue在线音乐播放系统(源码+数据库+文档)
数据库·vue.js·spring boot·后端·课程设计
一起努力啊~10 小时前
算法刷题-二分查找
java·数据结构·算法
小途软件10 小时前
高校宿舍访客预约管理平台开发
java·人工智能·pytorch·python·深度学习·语言模型
J_liaty10 小时前
Java版本演进:从JDK 8到JDK 21的特性革命与对比分析
java·开发语言·jdk
code bean10 小时前
Flask图片服务在不同网络接口下的路径解析问题及解决方案
后端·python·flask
+VX:Fegn089510 小时前
计算机毕业设计|基于springboot + vue律师咨询系统(源码+数据库+文档)
java·数据库·vue.js·spring boot·后端·课程设计
努力的小郑10 小时前
2025年度总结:当我在 Cursor 里敲下 Tab 的那一刻,我知道时代变了
前端·后端·ai编程